<?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"><?xmltex \hack{\allowdisplaybreaks}?><?xmltex \bartext{Model description paper}?>
  <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-16-6049-2023</article-id><title-group><article-title>Rapid Adaptive Optimization Model for Atmospheric<?xmltex \hack{\break}?> Chemistry (ROMAC) v1.0</article-title><alt-title>ROMAC v1.0</alt-title>
      </title-group><?xmltex \runningtitle{ROMAC v1.0}?><?xmltex \runningauthor{J.~Li et al.}?>
      <contrib-group>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff2">
          <name><surname>Li</surname><given-names>Jiangyong</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff2">
          <name><surname>Zhang</surname><given-names>Chunlin</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Zhao</surname><given-names>Wenlong</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff2">
          <name><surname>Han</surname><given-names>Shijie</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff1 aff3">
          <name><surname>Wang</surname><given-names>Yu</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff1 aff2">
          <name><surname>Wang</surname><given-names>Hao</given-names></name>
          <email>wanghao@jnu.edu.cn</email>
        </contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff1 aff2">
          <name><surname>Wang</surname><given-names>Boguang</given-names></name>
          <email>tbongue@jnu.edu.cn</email>
        </contrib>
        <aff id="aff1"><label>1</label><institution>Australia–China Centre for Air Quality Science and Management (Guangdong), Institute for Environmental and Climate Research, Jinan University, Guangzhou, 511443, China</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Guangdong Provincial Observation and Research Station for Atmospheric Environment and Carbon Neutrality in Nanling Forests, Guangzhou, 511443, China</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>Air Quality Studies, Department of Civil and Environmental Engineering, The Hong Kong Polytechnic University,<?xmltex \hack{\break}?> Hong Kong, China</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Hao Wang (wanghao@jnu.edu.cn) and Boguang Wang (tbongue@jnu.edu.cn)</corresp></author-notes><pub-date><day>30</day><month>October</month><year>2023</year></pub-date>
      
      <volume>16</volume>
      <issue>21</issue>
      <fpage>6049</fpage><lpage>6066</lpage>
      <history>
        <date date-type="received"><day>6</day><month>May</month><year>2023</year></date>
           <date date-type="rev-request"><day>5</day><month>July</month><year>2023</year></date>
           <date date-type="rev-recd"><day>21</day><month>September</month><year>2023</year></date>
           <date date-type="accepted"><day>22</day><month>September</month><year>2023</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2023 Jiangyong Li et al.</copyright-statement>
        <copyright-year>2023</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/16/6049/2023/gmd-16-6049-2023.html">This article is available from https://gmd.copernicus.org/articles/16/6049/2023/gmd-16-6049-2023.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/16/6049/2023/gmd-16-6049-2023.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/16/6049/2023/gmd-16-6049-2023.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d1e156">The Rapid Adaptive Optimization Model for Atmospheric Chemistry (ROMAC) is a flexible and computationally efficient photochemical box model. Its unique adaptive dynamic optimization module allows for the dynamic and rapid estimation of the impact of chemical and physical processes on pollutant concentration. ROMAC outperforms traditional box models in evaluating the influence of physical processes on pollutant concentrations. Its ability to quantify the effects of chemical and physical processes on pollutant concentrations has been confirmed through chamber and field observation cases. Since the development of a variable-step and variable-order numerical solver that eliminates the need for Jacobian matrix processing, the computational efficiency of ROMAC has seen a marked improvement with only a marginal increase in error. Specifically, the computational efficiency has improved by 96 % when compared to several established box models, such as F0AM and AtChem. Moreover, the solver maintains a discrepancy of less than 0.1 % when its results are compared with those obtained from a high-precision solver in AtChem.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>National Natural Science Foundation of China</funding-source>
<award-id>42121004</award-id>
<award-id>42077190</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="d1e168">Numerical models are effective tools of atmospheric chemistry studies. The 0-dimensional (0-D) box model has been widely used in previous studies to investigate the relationship between secondary pollutants and precursors (Decker et al., 2021, 2019; Ling et al., 2017; Wang et al., 2017; He et al., 2019). The box model can be used as a ground Lagrangian trajectories model to study the influence of the regional transport of precursors on the formation of secondary pollutants (Cheng et al., 2010; Wang et al., 2019). In addition, the box model is also a powerful tool in environmental chamber studies (Chen et al., 2015; Novelli et al., 2018). Several box models have been developed and applied in previous studies, such as AtChem (Sommariva et al., 2020), Chemistry As A Box Model Application (CAABA/MECCA) (Sander et al., 2011, 2019), Framework for 0-D Atmospheric Modeling (F0AM) (Wolfe et al., 2016), PyCHAM (O'Meara et al., 2021), JlBox (Huang and Topping, 2021) and Photochemical Box Model incorporating the Master Chemical Mechanism (PBM-MCM) (Wang et al., 2018).</p>
      <p id="d1e171">Since the processes of vertical and horizontal transmission are ignored, the simulation speed of the 0-D box model is higher than that of the 3-D air quality model. This allows box models to use more comprehensive chemical mechanisms and to focus on the analysis of chemical processes. For instance, the utilization of 0-D models in coupling with near-explicit chemical mechanisms can offer a comprehensive understanding of photochemical processes (Y. Wang et al., 2023). However, it is important to consider the impact of physical transport on long-lived species, such as its effect on O<inline-formula><mml:math id="M1" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> concentration (Li et al., 2021; Liu et al., 2022). The 0-D model, which lacks a 3-D structure, is unable to directly estimate the impact of physical processes (e.g., vertical<?pagebreak page6050?> and horizontal transport) on pollutant concentrations. Therefore, it is necessary to find a proper scheme to estimate the physical process for these models. Furthermore, as the atmospheric chemistry mechanism continues to develop, the number of chemical reactions involved gradually increases. Consequently, when using a chemical mechanism with massive reactions, the process of obtaining a chemical solution in a 0-D box model also becomes time-consuming. For example, the Master Chemical Mechanism (MCM v3.3.1) contains about 5900 species (Jenkin et al., 2015), and the size of the Jacobian matrix is close to <inline-formula><mml:math id="M2" display="inline"><mml:mrow><mml:mn mathvariant="normal">5900</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">5900</mml:mn></mml:mrow></mml:math></inline-formula>, which requires a large number of matrix calculations in the process of solving with the implicit solver. Therefore, it is necessary to develop a computationally efficient model for chemical mechanisms. Most of box models rely on third-party tools for differential equation solving. Several multistep or multistage approaches are commonly used by these chemical solvers, such as ROSENBROCK, BDF, LSODE, GEAR, SMVGEAR, etc. (Verwer et al., 1996; Aro, 1996a; Sandu et al., 1997a, b). Although these third-party solving tools have good accuracy and stability, the solving process requires a lot of computing resources, which significantly reduces the computational efficiency.</p>
      <p id="d1e195">The simplified chemical mechanism can effectively improve the solution efficiency of chemical processes, such as SAPRC07 (Carter, 2010), CB6 (Yarwood, 2010), MOZART (Emmons et al., 2010) and the Mainz Organic Mechanism (MOM) (Sander et al., 2019). The MCM mechanism also has a simplified version (<uri>https://mcm.york.ac.uk/CRI</uri>, last access: 21 October 2023), which can improve the computational efficiency. General methods for reduction (Young and Boris (1977); Djouad and Sportisse, 2002) and their on-line implementations (Sander et al., 2019; Shen et al., 2022; Lin et al., 2023) have been developed. These simplified mechanisms generally have a focus on getting particular parts of chemistry. As a result, the simulation results for certain species may diverge from those obtained using near-explicit chemical mechanisms, particularly concerning radicals (e.g., OH, HO<inline-formula><mml:math id="M3" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>, RO<inline-formula><mml:math id="M4" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>) and the concentrations of secondary pollutants (Ying and Li, 2011; Jimenez, 2003). The adoption of near-explicit chemical mechanisms enables a more detailed representation of the intricate process of photochemical reactions. Consequently, the simplified mechanism cannot adequately replace the role of the near-explicit mechanism. To improve efficiency, another approach is to improve the computational efficiency of differential equation solver programs, such as using GPU acceleration (Alvanos and Christoudias, 2017) or using the quasi-Newton method (Esentürk et al., 2018). These methods can effectively shorten the running time of the program, but still need to consume a lot of memory and CPU (or GPU) resources when processing the Jacobian matrix. There are alternative solution methods that do not need to store and update the Jacobian matrix, such as quasi-steady-state approximation (QSSA), multistep explicit and semi-implicit methods (Mott et al., 2000; Young and Boris, 1977). But these methods usually do not conserve mass (Cariolle et al., 2017). In addition, there are also fully implicit methods that do not need to deal with the Jacobian matrix, such as the Euler backward iterative (EBI) method (Hertel et al., 1993). However, the EBI solver has a large truncation error because it is only first-order accurate. Another stiff ordinary differential equations (ODEs) preconditioner method based on Newton linearization also simplifies the matrix operations during the solution (Aro, 1996a). But these algorithms may fail to converge when the Jacobian matrix is significantly off-diagonally dominant (Aro, 1996b). Hence, with the increasing complexity and scale of chemical mechanism systems, it is still a challenge to make these solving algorithms converge stably.</p>
      <p id="d1e219">The Rapid Adaptive Optimization Model for Atmospheric Chemistry (ROMAC) is a computationally efficient photochemical box model. To enhance its computational efficiency, a variable-step and variable-order (VSVOR) solver without Jacobian matrix processing was developed for ROMAC. This distinctive solver offers superior computational efficiency in handling atmospheric chemical mechanisms by eliminating the need for third-party libraries for numerical solving. By utilizing the VSVOR solver, ROMAC provides users with the flexibility to dynamically optimize the influence of physical processes on pollutant concentration, which is difficult to achieve in the traditional box model with oversimplified physical modules. Therefore, ROMAC will be computationally efficient and outperform the traditional box models in evaluating the impact of physical processes on pollutant concentrations.</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Description of ROMAC</title>
      <?pagebreak page6051?><p id="d1e230">ROMAC is a 0-D model focused on the simulation of atmospheric chemical kinetics problems. It was developed to provide users with a flexible and efficient computational tool. The core modules of ROMAC were developed in Fortran, and the data pre-processing and post-processing modules were developed in Python, which can keep the model running efficiently and provide users with flexible processing tools. In ROMAC, the changes in concentration of a species can mathematically be represented as Eq. (1):
          <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M5" display="block"><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">chem</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">emis</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">dry</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">dilu</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mrow><mml:mi mathvariant="normal">others</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:math></disp-formula>
        where <inline-formula><mml:math id="M6" display="inline"><mml:mrow><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">chem</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> represents the changes due to chemical reactions; <inline-formula><mml:math id="M7" display="inline"><mml:mrow><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">emis</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> represents the emission rate for the species; <inline-formula><mml:math id="M8" display="inline"><mml:mrow><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">dry</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M9" display="inline"><mml:mrow><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">dilu</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> represent the dry deposition and dilution, respectively. For dry deposition, ROMAC uses the maximum dry deposition velocity (cm s<inline-formula><mml:math id="M10" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) calculated by Zhang et al. (2003) to estimate the dry deposition process of the species, and users can also customize this value. The dry deposition process is added to the model in the form of first-order kinetics, and the kinetic constant is calculated by the dry deposition velocity and the preset boundary layer height (cm). Similar to other models (Wolfe et al., 2016; Sommariva et al., 2020), ROMAC uses first-order kinetics to calculate the dilution process, and users can customize the constants of the dilution process. Note that the current version of ROMAC does not feature a dedicated input function for wet deposition. Instead, ROMAC allows users to set a custom rate term, <inline-formula><mml:math id="M11" display="inline"><mml:mrow><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, which can be employed to account for wet deposition. If wet deposition is important for the simulation case, especially concerning the chemical mechanism of hydrophilic components like sulfate, it is suggested that the user incorporates it into <inline-formula><mml:math id="M12" display="inline"><mml:mrow><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. Moreover, users have the flexibility to add additional change rates as needed, such as the gas-wall partitioning in the chamber studies or the external transport (e.g., vertical and horizontal transport) in field observations. It is not a difficult task to incorporate new rates of change into <inline-formula><mml:math id="M13" display="inline"><mml:mrow><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> within the ROMAC framework.</p>
      <p id="d1e520">The subsequent sections offer a comprehensive overview of the ROMAC features. Furthermore, to facilitate reference, all the parameters employed in this paper are catalogued in Appendix B.</p>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>High-efficiency solver for atmospheric chemical kinetic equations</title>
      <p id="d1e530">Unlike many existing models, ROMAC distinguishes itself by not relying on third-party libraries for numerical solving. Instead, ROMAC employs its own computationally efficient variable-step and variable-order numerical solver named “VSVOR.” This solver is engineered to enhance computational efficiency while accommodating the universal attributes of atmospheric chemical mechanisms. It approaches all differential equations uniformly, eliminating the need for customized solution schemes tailored to specific chemical mechanisms. Therefore, the VSVOR solver offers a universal and versatile method for chemical solving. The VSVOR solver has a control on the truncation error of integration according to the relative tolerance (<italic>rtol</italic>) and the absolute tolerance (<italic>atol</italic>) specified by the user. The proposed solver offers an algorithm that strikes a balance between efficiency and accuracy. Most of the time, the accuracy of the VSVOR solver can be second order.</p>
      <p id="d1e539">The chemical mechanism is the core of atmospheric chemical box models. Generally, chemical reaction equations can be described in Eq. (2):
            <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M14" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msub><mml:mi>r</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:msub><mml:mi>r</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>→</mml:mo><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:msub><mml:mi>p</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:msub><mml:mi>p</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">…</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi mathvariant="italic">β</mml:mi><mml:mi>m</mml:mi></mml:msub><mml:msub><mml:mi>p</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:math></disp-formula>
          where <inline-formula><mml:math id="M15" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M16" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula> represent the stoichiometric number, and <inline-formula><mml:math id="M17" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula> and <inline-formula><mml:math id="M18" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> represent the reactant and product, respectively. Hence, the derivative of species concentration with respect to time can be described as an ODEs system shown in Eq. (3). For species <inline-formula><mml:math id="M19" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M20" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> can be calculated by Eq. (4). In Eq. (4), <inline-formula><mml:math id="M21" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> denote the chemical generation rate and the loss rate of species <inline-formula><mml:math id="M23" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> at time <inline-formula><mml:math id="M24" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula>, respectively. It is worth noting that the loss rate is related to the concentration of species <inline-formula><mml:math id="M25" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>. Therefore, to facilitate the subsequent formula derivation, <inline-formula><mml:math id="M26" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> can be described as a multivariate higher-degree equation for the concentration of species <inline-formula><mml:math id="M27" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> shown in Eq. (5), where <inline-formula><mml:math id="M28" display="inline"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">tot</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> represents the total number of the reactions related to the loss rate of species <inline-formula><mml:math id="M29" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>; <inline-formula><mml:math id="M30" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula> is the stoichiometric number, and <inline-formula><mml:math id="M31" display="inline"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is the part of the chemical reaction rate that is not directly related to the concentration of species <inline-formula><mml:math id="M32" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula>. The computation of the <inline-formula><mml:math id="M33" display="inline"><mml:mrow><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> follows the approach in the Fortran code provided on the MCM official website (<uri>https://mcm.york.ac.uk/MCM/about/archive</uri>, last access: 21 October 2023).

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M34" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E3"><mml:mtd><mml:mtext>3</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>C</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">chem</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mi>t</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E4"><mml:mtd><mml:mtext>4</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E5"><mml:mtd><mml:mtext>5</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>R</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">tot</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi>l</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            The lifetime of different species in atmospheric chemical mechanisms varies greatly. For example, OH has an atmospheric lifetime of only seconds but O<inline-formula><mml:math id="M35" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> has a lifetime of several days. Therefore, the ODEs system of atmospheric chemical kinetics simulation is extremely stiff, and explicit methods (e.g., explicit Euler method, explicit Runge–Kutta method) cannot achieve a stable solution without using a time step shorter than all lifetimes in the system, which is computationally unfeasible.</p>
      <?pagebreak page6052?><p id="d1e1009">In ROMAC, the implicit Euler method and the trapezoidal method were used to solve the ODEs; the iteration formula is given in Eqs. (6) and (7). The implicit Euler method, renowned for its exceptional numerical stability, has found extensive application in other atmospheric chemistry models (Esentürk et al., 2018). However, because the implicit Euler method only has first-order accuracy, it may introduce large truncation errors in the process of integration. Hence, the trapezoidal method iteration formula shown in Eq. (7) is used for integration in a specific situation. Both the implicit Euler method and the trapezoidal method have the term of <inline-formula><mml:math id="M36" display="inline"><mml:mrow><mml:mi>f</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:math></inline-formula> which is unknown at time <inline-formula><mml:math id="M37" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula> and needs to be solved. The Newton–Raphson (NR) scheme is a widely used method for solving implicit equations in both the implicit Euler method and the trapezoidal method. Equations (6) and (7) can be expressed in the form of Eqs. (8) and (9), respectively.

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M38" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E6"><mml:mtd><mml:mtext>6</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi>f</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E7"><mml:mtd><mml:mtext>7</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>f</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mi>f</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfenced></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E8"><mml:mtd><mml:mtext>8</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mi>f</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E9"><mml:mtd><mml:mtext>9</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>f</mml:mi><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfenced><mml:mo>+</mml:mo><mml:mi>f</mml:mi><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfenced></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            Thus, the iteration formula of the NR scheme can be expressed in the form of Eq. (10). Where <inline-formula><mml:math id="M39" display="inline"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> is the inverse matrix of the Jacobian matrix of <inline-formula><mml:math id="M40" display="inline"><mml:mrow><mml:mi>g</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. The Jacobian matrix for the implicit Euler method is given in Eq. (11), and the Jacobian matrix for the trapezoidal method is given in Eq. (12). It should be noted that the size of the Jacobian matrix and its inverse matrix will increase with the number of species in the chemical mechanisms increasing. In particular, dealing with near-explicit chemical mechanisms (e.g., MCM) would consume a lot of computer resources to store the Jacobian matrix and its inverse matrix. In addition, the inverse of a large-scale Jacobian matrix is quite time-consuming.

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M41" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E10"><mml:mtd><mml:mtext>10</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>k</mml:mi></mml:msubsup><mml:mo>-</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mi>g</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E11"><mml:mtd><mml:mtext>11</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><?xmltex \hack{\hbox\bgroup\fontsize{8.5}{8.5}\selectfont$\displaystyle}?><mml:mi mathvariant="normal">∇</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>=</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="center center center"><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋱</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E12"><mml:mtd><mml:mtext>12</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><?xmltex \hack{\hbox\bgroup\fontsize{6}{6}\selectfont$\displaystyle}?><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="center center center"><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mtd><mml:mtd/><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋱</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mspace linebreak="nobreak" width="1em"/><mml:mo>+</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd/><mml:mtd><mml:mrow><mml:mo>-</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            A simplified Newton (SN) method can effectively reduce the computational complexity of the iterative process of the NR method. The traditional SN method substitutes the inverse Jacobian matrix obtained in the first iteration for the inverse matrix in the subsequent iterations. Although the traditional SN method can reduce the amount of computation, it still needs to calculate and store the inverse of the Jacobian matrix at each time step. To further improve the computational efficiency, ROMAC uses a diagonal simplified Newton (DSN) method to solve the implicit equations.</p>
      <p id="d1e2339">When the <inline-formula><mml:math id="M42" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> in Eqs. (11) and (12) is small enough, the Jacobian matrix of <inline-formula><mml:math id="M43" display="inline"><mml:mrow><mml:mi>g</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> will be a diagonally dominant matrix or a quasi-diagonally dominant matrix. The aforementioned characteristics are inherently present within the Jacobian matrix of chemical mechanisms and are impervious to variations in specific chemical mechanisms. As a result, this scheme proves to be universally applicable across different chemical mechanisms. Under these conditions, the inverse matrix of Jacobian in Eq. (11) can be approximated by Eq. (13). According to the equations associated with the implicit Euler method in Eqs. (1)–(13), the iteration formula for species <inline-formula><mml:math id="M44" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> is shown in Eq. (14), where <inline-formula><mml:math id="M45" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> represents the number of iterative solutions. A previous study has also shown that such approximations are reliable (Aro, 1996b). Similarly, the approximate inverse of the Jacobian matrix for the trapezoidal method and the iterative formulas for the solution can be derived as shown in Eqs. (15) and (16), respectively. The solution process was iterated until the difference between the results of two iterations was less than one-tenth of the preset truncation error tolerance (etc., 0.1 <inline-formula><mml:math id="M46" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> atol or 0.1 <inline-formula><mml:math id="M47" display="inline"><mml:mo>×</mml:mo></mml:math></inline-formula> rtol) for ODEs solution.

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M48" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E13"><mml:mtd><mml:mtext>13</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><?xmltex \hack{\hbox\bgroup\fontsize{8.5}{8.5}\selectfont$\displaystyle}?><mml:mi mathvariant="normal">∇</mml:mi><mml:msubsup><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>≈</mml:mo><mml:mfenced open="[" close="]"><mml:mtable class="array" columnalign="center center center"><mml:mtr><mml:mtd><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋱</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E14"><mml:mtd><mml:mtext>14</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><?xmltex \hack{\hbox\bgroup\fontsize{8.5}{8.5}\selectfont$\displaystyle}?><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>R</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">tot</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>R</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">tot</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mi>l</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E15"><mml:mtd><mml:mtext>15</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><?xmltex \hack{\hbox\bgroup\fontsize{7.5}{7.5}\selectfont$\displaystyle}?><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:msup><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>≈</mml:mo><mml:mfenced close="]" open="["><mml:mtable class="array" columnalign="center center center"><mml:mtr><mml:mtd><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋱</mml:mi></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋮</mml:mi></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mn mathvariant="normal">0</mml:mn></mml:mtd><mml:mtd><mml:mi mathvariant="normal">⋯</mml:mi></mml:mtd><mml:mtd><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:mfrac><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:mrow></mml:mfrac></mml:mstyle></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E16"><mml:mtd><mml:mtext>16</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><?xmltex \hack{\hbox\bgroup\fontsize{7.5}{7.5}\selectfont$\displaystyle}?><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>R</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">tot</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo><mml:msub><mml:mi>l</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:msubsup><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">2</mml:mn><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>-</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>+</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>R</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi mathvariant="normal">tot</mml:mi></mml:msub></mml:mrow></mml:munderover><mml:mi mathvariant="italic">α</mml:mi><mml:msub><mml:mi>l</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mrow><mml:mi>k</mml:mi><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mtr></mml:mtable><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            It is worth noting that if all of the stoichiometric number (<inline-formula><mml:math id="M49" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">α</mml:mi><mml:mi>R</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) is equal to 1, Eq. (14) is the same as the iteration formula of the EBI solver (Hertel et al., 1993) used in the CMAQ model. In this study, Eq. (14) provides a generalized form of the EBI iteration formula. Hertel et al.'s (1993) study shows that the EBI solver has the advantages of high computational efficiency and high accuracy. However, the convergence condition of this method has not been discussed, such as how to choose the optimal integration time step size to make the solution process stable and convergent. If the time step size is too short, the computational efficiency will decrease. However, if the time step size is too large, the Jacobian matrix will not be diagonally dominant, it will lead to an algorithm hard to converge or even not to converge. This problem also exists in the EBI algorithm. Especially for such a complex chemical mechanism as the MCM, directly using the EBI scheme involves a large risk of causing the algorithm not to converge. In ROMAC, the variable time step and variable order scheme help to balance the computational efficiency and accuracy, maintain the Jacobian matrix as a quasi-diagonally dominant matrix and reduce the risk of convergence failure. Hence, this scheme will enhance the applicability and stability of the ROMAC numerical solver compared to the EBI numerical solver.</p>
      <p id="d1e3357">Actually, it is difficult to use a fixed time step to ensure that the Jacobian matrix is always quasi-diagonally dominant. In order to find the optimal time step, a variable time step size scheme is used in our model. First, <inline-formula><mml:math id="M50" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is defined<?pagebreak page6053?> as an extremely small positive value to ensure that this value is not less than the rounding error of the computer. According to IEEE Std 754–2008 (IEEE, 2008), <inline-formula><mml:math id="M51" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is defined as <inline-formula><mml:math id="M52" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.22</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">16</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> s in ROMAC. Secondly, <inline-formula><mml:math id="M53" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is defined as atmospheric lifetime of the species with the shortest lifetime in the chemical mechanism, as shown in Eq. (17). Third, a strict diagonal dominance matrix requires that the diagonal elements are greater than the sum of the rest of the elements in the same row, as shown in Eq. (18). Hence, <inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is calculated by Eq. (19) to ensure that Eq. (18) holds, and <inline-formula><mml:math id="M55" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> is the minimum in the set of <inline-formula><mml:math id="M56" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> shown in Eq. (20), where <inline-formula><mml:math id="M57" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> represents the rows of the Jacobian matrix. Finally, the initial integration time step size is determined by Eq. (21).

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M58" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E17"><mml:mtd><mml:mtext>17</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">min</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E18"><mml:mtd><mml:mtext>18</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mfenced open="|" close="|"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>g</mml:mi><mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mo>&gt;</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:mi mathvariant="normal">|</mml:mi><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>g</mml:mi><mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mi mathvariant="normal">|</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E19"><mml:mtd><mml:mtext>19</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">0.9</mml:mn><mml:mrow><mml:mo>(</mml:mo><mml:munderover><mml:mo movablelimits="false">∑</mml:mo><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>n</mml:mi></mml:munderover><mml:mi mathvariant="normal">|</mml:mi><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:mrow><mml:mrow><mml:mo>∂</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>j</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mi mathvariant="normal">|</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E20"><mml:mtd><mml:mtext>20</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mn mathvariant="normal">2</mml:mn><mml:mo>,</mml:mo><mml:mi>i</mml:mi></mml:mrow></mml:msub><mml:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">min</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E21"><mml:mtd><mml:mtext>21</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><?xmltex \hack{\hbox\bgroup\fontsize{8.5}{8.5}\selectfont$\displaystyle}?><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">init</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfenced close="" open="{"><mml:mtable class="array" columnalign="left left"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>≥</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mtext> and </mml:mtext><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>≥</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>&lt;</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mtext> and </mml:mtext><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>&lt;</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mtext> and </mml:mtext><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>≥</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>&lt;</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mtext> and </mml:mtext><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub><mml:mo>&lt;</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mtext> and </mml:mtext><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>&lt;</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            In order to improve the computational efficiency, the integration time step size should grow while ensuring the accuracy of the solution. When the time step size grows, the local truncation error (LTE) should be controlled. In each step (<inline-formula><mml:math id="M59" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula>), ROMAC uses both single-step and double-step methods for integration, and the calculated results are recorded as <inline-formula><mml:math id="M60" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M61" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:msub></mml:mrow></mml:math></inline-formula>, respectively. LTE is estimated by the difference between <inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M63" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:msub></mml:mrow></mml:math></inline-formula> (LTE <inline-formula><mml:math id="M64" display="inline"><mml:mrow><mml:mo>=</mml:mo><mml:mfenced close="|" open="|"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:math></inline-formula>), and the relative error is estimated by Eq. (22). This method has been successfully used in a previous study (Aro, 1996a).
            <disp-formula id="Ch1.E22" content-type="numbered"><label>22</label><mml:math id="M65" display="block"><mml:mrow><mml:mtext>RERR</mml:mtext><mml:mo>=</mml:mo><mml:mo>[</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mfenced close="|" open="|"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow><mml:mn mathvariant="normal">2</mml:mn></mml:mfrac></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">min</mml:mi></mml:msub></mml:mrow></mml:math></disp-formula>
          The model needs to adjust the integration time step according to the tolerance preset by the user. This requires inferencing a maximum integration time step based on the preset tolerance. According to the Lagrange remainder of the Taylor formula, the RERR of the integration result can also be expressed as Eq. (23), where <inline-formula><mml:math id="M66" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula> is the order of integration accuracy, equal to 1 for the implicit Euler method and equal to 2 for the trapezoidal method. Similarly, the user-specified maximum integral relative error can be expressed as Eq. (24), where <inline-formula><mml:math id="M67" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">max</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is an estimate of the maximum step size allowed when the preset rtol condition is satisfied. In ROMAC, the values of <inline-formula><mml:math id="M68" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M69" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> in Eqs. (23) and (24) are assumed to be approximate (<inline-formula><mml:math id="M70" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>≈</mml:mo><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. According to Eqs. (23) and (24), the maximum integration time step can be estimated by Eq. (25). Finally, the integration time step is updated according to Eqs. (26) and (27) to make sure that the time step is not larger than the maximum time step. In order to avoid a too accurate result making the integration time step size grow too large, when <inline-formula><mml:math id="M71" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">opt</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is greater than <inline-formula><mml:math id="M72" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula> by a factor of 10, the time step is only increased by a factor of 10. In general, as the integration step size increases, the number of iterations (<inline-formula><mml:math id="M73" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula>) required by the solver in this study will also increase. Too many iterations will make the computation time-consuming, and thus the integration time step is not increased when the solver iteration time exceeds 50 (<inline-formula><mml:math id="M74" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula>).

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M75" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E23"><mml:mtd><mml:mtext>23</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtext>RERR</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><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:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msup><mml:mi>t</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>×</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:mi>s</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">!</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E24"><mml:mtd><mml:mtext>24</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtext>rtol</mml:mtext><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>R</mml:mi><mml:mi>n</mml:mi></mml:msub><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">max</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow><mml:mrow><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msup><mml:mi>f</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>s</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi mathvariant="italic">ξ</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi>t</mml:mi><mml:mi mathvariant="normal">max</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>+</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>)</mml:mo><mml:mo>×</mml:mo><mml:mfenced open="(" close=")"><mml:mrow><mml:mi>s</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfenced><mml:mi mathvariant="normal">!</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E25"><mml:mtd><mml:mtext>25</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">max</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msup><mml:mfenced open="(" close=")"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mtext>rtol</mml:mtext><mml:mtext>RERR</mml:mtext></mml:mfrac></mml:mstyle></mml:mfenced><mml:mfrac><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:mi>s</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfrac></mml:msup><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E26"><mml:mtd><mml:mtext>26</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">opt</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.9</mml:mn><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">max</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E27"><mml:mtd><mml:mtext>27</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mfenced close="" open="{"><mml:mtable class="array" columnalign="left left"><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">opt</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">opt</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">10</mml:mn><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mtext> and </mml:mtext><mml:mi>N</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">50</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mn mathvariant="normal">10</mml:mn><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">opt</mml:mi></mml:msub><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">10</mml:mn><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi>t</mml:mi></mml:msub><mml:mtext> and </mml:mtext><mml:mi>N</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">50</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>(</mml:mo><mml:mi>N</mml:mi><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">50</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            If RERR <inline-formula><mml:math id="M76" display="inline"><mml:mo>&lt;</mml:mo></mml:math></inline-formula> rtol or LTE <inline-formula><mml:math id="M77" display="inline"><mml:mo>&lt;</mml:mo></mml:math></inline-formula> atol, proceed to the next integration time, otherwise the integration time step is halved and re-integrated until the tolerance requirement is satisfied.</p>
      <p id="d1e4629">Another important question is whether to choose the implicit Euler method or the trapezoidal method for the integration process. Both the implicit Euler method and the trapezoidal method are stable for stiff ODEs. However, the solution method used in this study requires the Jacobian matrix to be diagonally dominant or quasi-diagonally dominant. Since the initial time step in Eqs. (18) and (19) are derived from the implicit Euler method, the implicit Euler method is used for integral starting. If the algorithm converges quickly (<inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula>), then the trapezoidal method is used in the next integration time step. When N is greater than 50, the algorithm is switched to the implicit Euler method in the next integration time step to improve the computational efficiency.</p>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>Adaptive dynamic optimization module and variables constraints</title>
      <p id="d1e4652">ROMAC can be run under user-specified variable constraints, including but not limited to concentrations of chemical species, photolysis rate, temperature, humidity, pressure and other meteorological conditions. For concentrations of chemical species, ROMAC provides the user with three different constraint schemes.</p>
      <p id="d1e4655"><italic>Scheme 1.</italic> Different from previous models, ROMAC provides a novel constraint scheme to use the observed data to constrain the model run. Scheme 1 does not directly input the species concentration, but controls the <inline-formula><mml:math id="M79" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> term with adaptive dynamic optimization algorithm. The default value for <inline-formula><mml:math id="M80" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is 0, after integration, <inline-formula><mml:math id="M81" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> can be<?pagebreak page6054?> estimated by the gap between the observed and simulated values, as detailed in Eq. (28):
            <disp-formula id="Ch1.E28" content-type="numbered"><label>28</label><mml:math id="M82" display="block"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable rowspacing="0.2ex 0.2ex 5.690551pt 0.2ex 0.2ex" class="array" columnalign="left"><mml:mtr><mml:mtd><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">obs</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">model</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mfenced close="" open="("><mml:mrow><mml:mi mathvariant="normal">|</mml:mi><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">obs</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">model</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mi mathvariant="normal">|</mml:mi><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mfenced open="" close=")"><mml:mrow><mml:mo>×</mml:mo><mml:mi mathvariant="normal">|</mml:mi><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">model</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mi mathvariant="normal">|</mml:mi></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="false"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mn mathvariant="normal">0.1</mml:mn><mml:mo>×</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">model</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>t</mml:mi><mml:mrow><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>t</mml:mi><mml:mi>n</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mstyle><mml:mo>×</mml:mo><mml:msup><mml:mfenced close=")" open="("><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:mfenced><mml:mi>u</mml:mi></mml:msup></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mfenced close="" open="("><mml:mrow><mml:mi mathvariant="normal">|</mml:mi><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">obs</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">model</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mfenced open="|" close=""><mml:mrow><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn></mml:mrow></mml:mfenced></mml:mrow></mml:mfenced></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:mfenced open="" close=")"><mml:mfenced close="|" open=""><mml:mrow><mml:mo>×</mml:mo><mml:mi mathvariant="normal">|</mml:mi><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">model</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>
          where <inline-formula><mml:math id="M83" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">obs</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> represents the observations and <inline-formula><mml:math id="M84" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">model</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> represents the simulations. In Eq. (28), <inline-formula><mml:math id="M85" display="inline"><mml:mrow><mml:mi>u</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> when <inline-formula><mml:math id="M86" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">obs</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is less than <inline-formula><mml:math id="M87" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">model</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M88" display="inline"><mml:mrow><mml:mi>u</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:mrow></mml:math></inline-formula> when <inline-formula><mml:math id="M89" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">obs</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is greater than <inline-formula><mml:math id="M90" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">model</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. In complex systems, changing <inline-formula><mml:math id="M91" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> may also affect other chemical process, and thus the relationship between <inline-formula><mml:math id="M92" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the simulation results may be nonlinear. Therefore, it is difficult to calculate <inline-formula><mml:math id="M93" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in a single iteration. It is necessary to estimate this by loop iteration until the difference between observation and simulation reaches a preset tolerance. In this study, the difference between observation and simulation is characterized by the root mean square error (RMSE) shown in Eq. (29).
            <disp-formula id="Ch1.E29" content-type="numbered"><label>29</label><mml:math id="M94" display="block"><mml:mrow><mml:mtext>RMSE</mml:mtext><mml:mo>=</mml:mo><mml:msqrt><mml:mrow><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">obs</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">model</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:msup><mml:mo>)</mml:mo><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:msqrt></mml:mrow></mml:math></disp-formula>
          The cyclic dynamic optimization process of <inline-formula><mml:math id="M95" display="inline"><mml:mrow><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is shown in Fig. 1. The iterative updating formula of <inline-formula><mml:math id="M96" display="inline"><mml:mrow><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> based on the  Newton–Raphson method is given in Eq. (30).

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M97" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E30"><mml:mtd><mml:mtext>30</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><?xmltex \hack{\hbox\bgroup\fontsize{7.5}{7.5}\selectfont$\displaystyle}?><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mrow><mml:msub><mml:mi mathvariant="normal">others</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mfenced open="{" close=""><mml:mtable class="array" columnalign="left left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mrow><mml:msub><mml:mi mathvariant="normal">others</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mrow><mml:msub><mml:mi mathvariant="normal">others</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mtext>RMSE</mml:mtext><mml:mi>m</mml:mi></mml:msub><mml:mo>⋅</mml:mo><mml:msubsup><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mtext>dRMSE</mml:mtext><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mfenced open="[" close="]"><mml:mfrac><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi>m</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msubsup></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mfenced></mml:mrow></mml:mtd></mml:mtr></mml:mtable><?xmltex \hack{$\egroup}?></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E31"><mml:mtd><mml:mtext>31</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mtext>dRMSE</mml:mtext><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mtext>RMSE</mml:mtext></mml:mrow><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mtext>RMSE</mml:mtext><mml:mi>m</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mtext>RMSE</mml:mtext><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mrow><mml:msub><mml:mi mathvariant="normal">others</mml:mi><mml:mi>m</mml:mi></mml:msub></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mrow><mml:msub><mml:mi mathvariant="normal">others</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            where <inline-formula><mml:math id="M98" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula> is the number of iterations and <inline-formula><mml:math id="M99" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> at the first iteration (<inline-formula><mml:math id="M100" display="inline"><mml:mrow><mml:mi>m</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>) is estimated by Eq. (28). When the number of iterations is greater than 1 (<inline-formula><mml:math id="M101" display="inline"><mml:mrow><mml:mi>m</mml:mi><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>), the update equation of <inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is developed based on the Newton–Raphson method. The RMSE is used as the objective function for optimization, and the derivative of RMSE with <inline-formula><mml:math id="M103" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is estimated by the difference method shown in Eq. (31).</p>
      <p id="d1e5749">The <inline-formula><mml:math id="M104" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> can also be optimized in the mode of kinetic equations (e.g.,  <inline-formula><mml:math id="M105" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">others</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:mi>C</mml:mi></mml:mrow></mml:math></inline-formula>), and then the kinetic constants (<inline-formula><mml:math id="M106" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>) can be optimized using a similar process shown in Fig. 1. ROMAC provides an option for the user to switch between these two modes. Furthermore, the user can also use other algorithms for dynamic optimization, such as ensemble Kalman filter (EnKF).</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F1"><?xmltex \currentcnt{1}?><?xmltex \def\figurename{Figure}?><label>Figure 1</label><caption><p id="d1e5827">The cyclic dynamic optimization process of <inline-formula><mml:math id="M107" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>.</p></caption>
          <?xmltex \igopts{width=236.157874pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/6049/2023/gmd-16-6049-2023-f01.png"/>

        </fig>

      <p id="d1e5861"><italic>Scheme 2.</italic> In Scheme 2, the concentration of species can be initialized at the beginning of each simulation time step, which is mainly applied to the solution of initial value problems and more suitable for chamber simulation. This scheme has been widely used in previous models (e.g., PBM-MCM, AtChem, F0AM). However, if the regional transport process of pollutants is not considered, the simulation results of long-lived species in this scheme may have large deviations from the observed results.</p>
      <p id="d1e5866"><italic>Scheme 3.</italic> Scheme 3 constrains the change rate of species concentration (<inline-formula><mml:math id="M108" display="inline"><mml:mrow><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>) while constraining the initial concentration, in a similar way as in F0AM. The advantage of this scheme is that the constrained variables can be kept at a user-specified level throughout the simulation. In this scheme, the long-lived species can maintain the observed concentration level. This constraining is appropriate if the temporal resolution of the observed data is high. The time interval of the model should be significantly smaller than the lifetime of constrained species. However, this approach also has its limitations. Since species concentrations are constrained as a constant, chemical imbalances may result.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F2" specific-use="star"><?xmltex \currentcnt{2}?><?xmltex \def\figurename{Figure}?><label>Figure 2</label><caption><p id="d1e5895">Model output results illustrating diurnal variations for selected species, highlighting the impact of different concentration constraint schemes. <bold>(a)</bold> NO concentrations; <bold>(b)</bold> OH concentrations; <bold>(c)</bold> PAN concentrations.</p></caption>
          <?xmltex \igopts{width=483.69685pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/6049/2023/gmd-16-6049-2023-f02.png"/>

        </fig>

      <p id="d1e5913">To better understand the distinctive attributes of various constraint schemes, we conducted a straightforward test case in which nitric oxide (NO) was constrained by three different schemes. Other input species (i.e., VOCs, NO<inline-formula><mml:math id="M109" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>, O<inline-formula><mml:math id="M110" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula>, SO<inline-formula><mml:math id="M111" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>, CO) were constrained by Scheme 3. Figure 2 illustrates the results of this test, showcasing how different schemes affect the concentration of target species. The simulation utilized a time step of 120 s, while the input data interval from observations was set at 3600 s. Under Scheme 2, where emissions and regional transport were not considered, NO concentrations experienced a rapid decline before reaching a steady state (Fig. 2a). By contrast, both Scheme 1 and Scheme 3<?pagebreak page6055?> displayed NO concentrations in close agreement with the observed hourly averages, ensuring that the model faithfully replicated the real atmospheric conditions. It is worth noting that due to variations in constraint schemes, simulated concentrations of other unconstrained species, such as OH and PAN, can also diverge (Fig. 2b and c). This case study was primarily designed to elucidate the unique features of different constraint schemes, with no intent to definitively validate or invalidate any particular scheme. Users are encouraged to make their scheme selections judiciously, aligning them with their specific research needs and observational findings.</p>
</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><title>Photolysis</title>
      <p id="d1e5952">ROMAC provides two ways for the user to set the photolysis rate. First, the user can specify the photolysis rate at each integration time step in the form of an ASCII file. The input photolysis rate can be estimated by other models or the observations. In ROMAC, a Python script (<italic>TUV2ROMAC.py</italic>) is provided for coupling the output of the Tropospheric Ultraviolet and Visible Radiation model (TUVv5.2, available at <uri>https://www2.acom.ucar.edu/modeling/tropospheric-ultraviolet-and-visible-tuv-radiation-model</uri>, last access: 6 May 2023). Users can easily use this tool to convert the TUV model output results into ROMAC input files.</p>
      <p id="d1e5961">ROMAC provides users with an inline calculation module to calculate photolysis. In the current version, the inline calculation module of photolysis uses the algorithm provided by MCM, an algorithm based on the solar zenith angle (SZA). The trigonometric parameterization function is shown in Eq. (32). The parameters of <inline-formula><mml:math id="M112" display="inline"><mml:mi>l</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M113" display="inline"><mml:mi>m</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M114" display="inline"><mml:mi>n</mml:mi></mml:math></inline-formula> are provided by MCM (<uri>http://mcm.york.ac.uk/</uri>, last access: 6 May 2023).
            <disp-formula id="Ch1.E32" content-type="numbered"><label>32</label><mml:math id="M115" display="block"><mml:mrow><mml:mi>J</mml:mi><mml:mo>=</mml:mo><mml:mi>l</mml:mi><mml:mo>×</mml:mo><mml:mi mathvariant="normal">cos</mml:mi><mml:mo>(</mml:mo><mml:mtext>SZA</mml:mtext><mml:msup><mml:mo>)</mml:mo><mml:mi>m</mml:mi></mml:msup><mml:mo>×</mml:mo><mml:msup><mml:mi>e</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mi>n</mml:mi><mml:mo>×</mml:mo><mml:mtext>sec(SZA)</mml:mtext></mml:mrow></mml:msup></mml:mrow></mml:math></disp-formula>
          If both the input photolysis rate and the inline calculated photolysis rate are present, ROMAC will use the input photolysis rate preferentially. In addition, ROMAC provides the user with a photolysis rate modification factor (Jrate), which can easily be used to adjust the photolysis rate in the model. The default value of Jrate is 1.0, and the actual photolysis rate used in the model is the input rate or the inline calculated rate multiplied by Jrate.</p>
</sec>
<sec id="Ch1.S2.SS4">
  <label>2.4</label><title>Model accuracy and computational efficiency</title>
      <p id="d1e6035">The comparison of ROMAC with AtChem, F0AM and FACSIMILE, which is widely used for MCM, was performed on a PC with a CPU of 16-core AMD Ryzen 9 3950X at 3.5 GHz and 32 GB RAM. The operating system was 64 bit Ubuntu (version 20.04.1) and the software was compiled using Intel Fortran (ifort version 2021.2.0). The computational efficiency of the model is evaluated by CPU time. AtChem, ROMAC, and FACSIMILE are all run using a single core and the CPU time is recorded by the built-in function of the software. The CPU time used by F0AM is recorded by the function <italic>cputime</italic> in MATLAB. The total integration time is 345 600 s, and the integration time step is 900 s. The settings of atol (10<inline-formula><mml:math id="M116" display="inline"><mml:mrow><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:msup><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and rtol (10<inline-formula><mml:math id="M117" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>) in the models are consistent. The temperature, pressure and humidity in the scenario simulation are 25 <inline-formula><mml:math id="M118" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula>C, 101.325 kPa and 35 %, respectively. The chemical mechanism used in this test is MCM v3.3.1, and the initial species concentrations are shown in Table A1. Since running the entire version of MCM v3.3.1 using AtChem is computationally excessive for our computing platform, we only selected the VOCs included in the EPA Photochemical Assessment Monitoring Stations (PAMS) Target List (<uri>https://www.epa.gov/amtic/</uri>, last access: 21 October 2023) and exported the mechanism file from the MCM website. In this test case, 3899 species and 11 814 chemical reactions were included.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F3" specific-use="star"><?xmltex \currentcnt{3}?><?xmltex \def\figurename{Figure}?><label>Figure 3</label><caption><p id="d1e6082">Accuracy evaluation and comparison of model computational efficiency. <bold>(a)</bold> Maximum relative error between the integration results of ROMAC and AtChem. <bold>(b)</bold> CPU time used to run compared with other models.</p></caption>
          <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/6049/2023/gmd-16-6049-2023-f03.png"/>

        </fig>

      <p id="d1e6097">In this study, we assumed that the solution results of AtChem based on the CVODE library are accurate. Therefore, the accuracy of the model is evaluated by calculating the relative difference between the solution results of ROMAC and AtChem (Eq. 33).
            <disp-formula id="Ch1.E33" content-type="numbered"><label>33</label><mml:math id="M119" display="block"><mml:mrow><mml:msub><mml:mtext>RE</mml:mtext><mml:mi>t</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">|</mml:mi><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">ROMAC</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">AtChem</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mi mathvariant="normal">|</mml:mi></mml:mrow><mml:mrow><mml:mi mathvariant="normal">|</mml:mi><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi mathvariant="normal">AtChem</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mi mathvariant="normal">|</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>×</mml:mo><mml:mn mathvariant="normal">100</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="italic">%</mml:mi></mml:mrow></mml:math></disp-formula>
          Figure A1 shows a comparison of simulation results for nine species, including radicals and gaseous pollutants, which<?pagebreak page6056?> were commonly used in previous studies to evaluate solution results (Hertel et al., 1993; Esentürk et al., 2018; Aro, 1996b). The simulation results for ROMAC in Fig. A1 are processed by the VSVOR solver. As shown in Fig. A1, the solution results of ROMAC and AtChem are comparable, indicating that the solution results of ROMAC are comparable to the high-precision solution algorithm. The time series of relative error and its growth rates are depicted in Fig. A2. The relative difference between the solution results of ROMAC and that of AtChem is gradually stabilized, and the rate of change of the relative error after 270 000 s is extremely low, between <inline-formula><mml:math id="M120" display="inline"><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1.0</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> % s<inline-formula><mml:math id="M121" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> and <inline-formula><mml:math id="M122" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.0</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> % s<inline-formula><mml:math id="M123" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>. Although the relative error of O<inline-formula><mml:math id="M124" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> has a trend of continuous increase, the growth rate of the error remains stable and extremely low (<inline-formula><mml:math id="M125" display="inline"><mml:mrow><mml:mn mathvariant="normal">3.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">8</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> % s<inline-formula><mml:math id="M126" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>). Hence, the relative error remains within the preset rtol even if the simulation duration is extended by an additional <inline-formula><mml:math id="M127" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.0</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">6</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> s at this growth rate. This suggests that the error of the ROMAC result can be stably controlled during long-term simulations. Figure 3 illustrates the maximum relative error in the scenario simulation and the CPU time used by each model. The maximum relative errors between the results of the VSVOR solver and the results of AtChem are all smaller than the preset rtol. The solution results obtained from the EBI solver were also evaluated in this study. The discrepancy of certain species in the results obtained by EBI exceeds the preset tolerance (0.1 %), such as NO, NO<inline-formula><mml:math id="M128" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> and MGLYOX. Compared with the single-step EBI solver, the VSVOR solver with variable time step and variable order can better control the truncation error. In terms of CPU time required for execution, the VSVOR solver with higher solution accuracy is even more efficient than EBI. The CPU time consumed by EBI with different integration time steps is shown in Table A2. For the MCM chemical mechanism, the algorithm fails to converge when the integration time step is longer than 50 s. After a series of tests, we found that even with an integration time step of 10 s, the EBI solver was at risk of failing to converge. However, reducing the integration time step too much diminishes the efficiency of the EBI solver when handling the MCM mechanism in comparison to the VSVOR solver. Hence, the VSVOR solver exhibits comparable computational efficiency to the EBI solver, while maintaining superior solution accuracy and stability.</p>
      <p id="d1e6291">Compared with other models, ROMAC has greatly improved the computational efficiency of solving large-scale chemical mechanisms. The computational efficiency of ROMAC is 97 % higher than that of F0AM and AtChem, and 96 % higher than that of FACSIMILE.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Model validation and application</title>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Chamber simulation case</title>
      <p id="d1e6310">A chamber experiment for toluene degradation was used to evaluate the capabilities of ROMAC to dynamically optimize chemical and physical processes. In this case, the indoor smog chamber in JNU-VMDSC was used to simulate the degradation of toluene. The JNU-VMDSC provides a reliable experimental platform, and its structure and characterization (<inline-formula><mml:math id="M129" display="inline"><mml:mrow><mml:mi>e</mml:mi><mml:mo>.</mml:mo><mml:mi>g</mml:mi><mml:mo>.</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></inline-formula> wall loss, light intensity, airtightness test) have been described in a previous study (W. Wang et al., 2023). Toluene and isoprene were injected into the chamber before the UV light was turned on. The initial mixing ratios of toluene and isoprene were 2157 and 160 ppbv, respectively.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F4" specific-use="star"><?xmltex \currentcnt{4}?><?xmltex \def\figurename{Figure}?><label>Figure 4</label><caption><p id="d1e6331">Model simulation results. <bold>(a)</bold> Comparison results between the simulated and observed toluene mixing ratios. <bold>(b)</bold> Chemical loss rate of toluene. <bold>(c)</bold> Comparison of kinetic constants in dilution process. Error bars indicate the standard deviation of <inline-formula><mml:math id="M130" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> at different times in scenario 3.</p></caption>
          <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/6049/2023/gmd-16-6049-2023-f04.png"/>

        </fig>

      <p id="d1e6360">In order to simulate the effect of the dilution process on the toluene concentration, nitrogen was injected into the chamber at a flow of 7 L min<inline-formula><mml:math id="M131" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>, while sampling was carried out at a flow of 7 L min<inline-formula><mml:math id="M132" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula> at the sampling port. Similar to previous studies (Dada et al., 2020; Jiang et al., 2020), the rate of dilution was calculated using Eqs. (34) and<?pagebreak page6057?> (35):

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M133" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E34"><mml:mtd><mml:mtext>34</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>c</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:mfenced><mml:mi mathvariant="normal">dilu</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi>C</mml:mi><mml:mo>×</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>v</mml:mi></mml:mrow><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">chamber</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>=</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">dilu</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:mi>C</mml:mi></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E35"><mml:mtd><mml:mtext>35</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle class="stylechange" displaystyle="true"/><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">dilu</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mn mathvariant="normal">1</mml:mn><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">chamber</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>×</mml:mo><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>v</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:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mtext>Flow</mml:mtext><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mrow><mml:mi mathvariant="normal">chamber</mml:mi><mml:mo>,</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            where <inline-formula><mml:math id="M134" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">dilu</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the rate constant of dilution, <inline-formula><mml:math id="M135" display="inline"><mml:mrow><mml:msub><mml:mi>V</mml:mi><mml:mi mathvariant="normal">chamber</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the volume of the chamber (8000 L), and “Flow” is the flow of nitrogen injection. Therefore, the theoretical estimation result of <inline-formula><mml:math id="M136" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">dilu</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in this case is <inline-formula><mml:math id="M137" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.458</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> s<inline-formula><mml:math id="M138" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>. Wall loss was not considered in this simple experiment with gaseous pollutants.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F5" specific-use="star"><?xmltex \currentcnt{5}?><?xmltex \def\figurename{Figure}?><label>Figure 5</label><caption><p id="d1e6572">Species mixing ratio and the rate of O<inline-formula><mml:math id="M139" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> change. <bold>(a)</bold> VOCs and NO<inline-formula><mml:math id="M140" display="inline"><mml:msub><mml:mi/><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula> mixing ratios. <bold>(b)</bold> Model and observation O<inline-formula><mml:math id="M141" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> mixing ratios. <bold>(c)</bold> The effect of the physical process on the O<inline-formula><mml:math id="M142" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> mixing ratios calculated by the adaptive dynamic optimization module. <bold>(d)</bold> The rate of O<inline-formula><mml:math id="M143" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> chemical production.</p></caption>
          <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/6049/2023/gmd-16-6049-2023-f05.png"/>

        </fig>

      <?pagebreak page6058?><p id="d1e6639">The version of the chemical mechanism used in the model simulations is MCM v3.3.1, all species and mechanisms in MCM are included. Three case scenarios were set up to evaluate the simulation capabilities of ROMAC. In scenario 1, only chemical processes were considered (Eq. 36). In scenario 2, chemical processes and dilution processes were considered (Eq. 37). In scenario 3, we assume that the results of the experiment are influenced by an unknown process, and this process is assumed to be a first-order kinetic process (Eq. 38). The <inline-formula><mml:math id="M144" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in scenario 3 was dynamically optimized with Scheme 1 as described in Sect. 2.2. Theoretically, the value of <inline-formula><mml:math id="M145" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> obtained by the dynamic optimization in scenario 3 should be close to <inline-formula><mml:math id="M146" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">dilu</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in scenario 2.

                <disp-formula specific-use="gather" content-type="numbered"><mml:math id="M147" display="block"><mml:mtable displaystyle="true"><mml:mlabeledtr id="Ch1.E36"><mml:mtd><mml:mtext>36</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">Tolu</mml:mi></mml:msub></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:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">Tolu</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">chem</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E37"><mml:mtd><mml:mtext>37</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable class="split" rowspacing="0.2ex" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">Tolu</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">Tolu</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">chem</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">Tolu</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">dilu</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">Tolu</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">chem</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">dilu</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">Tolu</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr><mml:mlabeledtr id="Ch1.E38"><mml:mtd><mml:mtext>38</mml:mtext></mml:mtd><mml:mtd><mml:mrow><mml:mstyle displaystyle="true" class="stylechange"/><mml:mtable rowspacing="0.2ex" class="split" displaystyle="true" columnalign="right left"><mml:mtr><mml:mtd><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">Tolu</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mrow></mml:mtd><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">Tolu</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">chem</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">Tolu</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr><mml:mtr><mml:mtd/><mml:mtd><mml:mrow><mml:mo>=</mml:mo><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mi mathvariant="normal">Tolu</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">chem</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">others</mml:mi></mml:msub><mml:mo>×</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mi mathvariant="normal">Tolu</mml:mi></mml:msub></mml:mrow></mml:mtd></mml:mtr></mml:mtable></mml:mrow></mml:mtd></mml:mlabeledtr></mml:mtable></mml:math></disp-formula>

            The total duration of the chamber experiment was 8 h, and the CPU time consumed by a single simulation of ROMAC was about 13 s. Figure 4 illustrates the comparison results between the simulated and observed toluene mixing ratios for different scenario cases. Due to the lack of dilution process in scenario 1, there is a large gap between simulation results and observations. After considering the dilution process, the simulation of scenario 2 was improved, which indicates that the setting of scenario 2 is reasonable. The absence of a physical process in the model is identified as the primary cause for failure to reproduce observations in scenario 1. The simulation results of scenario 3 agree well with the observations, which indicates that the dynamic optimization algorithm successfully captures the process that cannot be explained by the MCM chemical mechanism. Figure 4b illustrates the chemical loss rate of toluene under different simulation scenarios. The results of scenario 3 and scenario 2 are consistent and significantly different from the results of scenario 1. This indicates that the dynamic optimization algorithm can improve the chemical process while optimizing the physical process. Ignoring physical processes in the traditional box model may introduce large uncertainty to the simulation results. The rate of the physical process is subject to uncertainty in practical applications, but its average value is expected to closely approximate the theoretical value. The optimized value of <inline-formula><mml:math id="M148" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in scenario 3, as shown in Fig. 4c, exhibits a certain range of fluctuations rather than a fixed value. However, its average values (<inline-formula><mml:math id="M149" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.430</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>) are comparable to <inline-formula><mml:math id="M150" display="inline"><mml:mrow><mml:msub><mml:mi>k</mml:mi><mml:mi mathvariant="normal">dilu</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in scenario 2 (Fig. 4c), which indicates that the dynamically optimized algorithm is reliable.</p>
</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Field observation case</title>
      <p id="d1e6990">This case demonstrates the application of ROMAC to the analysis of the photochemical process of O<inline-formula><mml:math id="M151" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> formation and the dynamic optimization of physical processes. The observation data were obtained at the Heshan Atmospheric Supersite (22.728<inline-formula><mml:math id="M152" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> N, 112.929<inline-formula><mml:math id="M153" display="inline"><mml:msup><mml:mi/><mml:mo>∘</mml:mo></mml:msup></mml:math></inline-formula> E) in Guangdong Province, China. A detailed description of the Heshan site can be found in previous publications (He et al., 2019; Yang et al., 2017). The observation period was from 4 to 10 April 2021. Meteorological parameters and the mixing ratios of NO<inline-formula><mml:math id="M154" display="inline"><mml:msub><mml:mi/><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula>, VOCs, SO<inline-formula><mml:math id="M155" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>, CO were constrained by Scheme 3. The concentrations of NO<inline-formula><mml:math id="M156" display="inline"><mml:msub><mml:mi/><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula> and VOCs were shown in Fig. 5a, with the meteorological observations in Fig. A3.</p>

      <?xmltex \floatpos{t}?><fig id="Ch1.F6" specific-use="star"><?xmltex \currentcnt{6}?><?xmltex \def\figurename{Figure}?><label>Figure 6</label><caption><p id="d1e7050">RIR values of O<inline-formula><mml:math id="M157" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> precursors, i.e., VOCs, NO<inline-formula><mml:math id="M158" display="inline"><mml:msub><mml:mi/><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula> and CO.</p></caption>
          <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/6049/2023/gmd-16-6049-2023-f06.png"/>

        </fig>

      <?pagebreak page6059?><p id="d1e7077">The simulation of O<inline-formula><mml:math id="M159" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> was constrained by Scheme 1. In this case, all physical processes of O<inline-formula><mml:math id="M160" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> (e.g., dry deposition, dilution, transport) were merged into <inline-formula><mml:math id="M161" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>. The rate of change of O<inline-formula><mml:math id="M162" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> is shown in Eq. (39). The optimal estimate of <inline-formula><mml:math id="M163" display="inline"><mml:mrow><mml:mo>[</mml:mo><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle><mml:msub><mml:mo>]</mml:mo><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> uses Scheme 1 shown in Fig. 1.
            <disp-formula id="Ch1.E39" content-type="numbered"><label>39</label><mml:math id="M164" display="block"><mml:mrow><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub></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:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">chem</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></disp-formula>
          The comparison between the optimized simulation results and the observations of O<inline-formula><mml:math id="M165" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> mixing ratios is shown in Fig. 5b. As expected, the model outputs are consistent with the observations due to the dynamic optimization. The estimated value of <inline-formula><mml:math id="M166" display="inline"><mml:mrow><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> for the physical process is shown in Fig. 5c. Positive values of <inline-formula><mml:math id="M167" display="inline"><mml:mrow><mml:msub><mml:mfenced open="[" close="]"><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> indicate that physical processes increase local O<inline-formula><mml:math id="M168" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> concentration (e.g., external transport), while negative values indicate a decrease in O<inline-formula><mml:math id="M169" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> concentration (<italic>e.g.</italic>, dilution, deposition). As displayed in Fig. 5c, <inline-formula><mml:math id="M170" display="inline"><mml:mrow><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is usually negative during the daytime, indicating that O<inline-formula><mml:math id="M171" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> was transported out of the region after formation by photochemical processes. However, positive values of <inline-formula><mml:math id="M172" display="inline"><mml:mrow><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> can also occur during the daytime. On 6 April, the surface ozone mixing ratio increased rapidly, and the maximum hourly mixing ratio exceeded China II Emission Standard (<inline-formula><mml:math id="M173" display="inline"><mml:mrow><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula> ppbv). The value of <inline-formula><mml:math id="M174" display="inline"><mml:mrow><mml:msub><mml:mfenced close="]" open="["><mml:mstyle displaystyle="false"><mml:mfrac style="text"><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:msub><mml:mi>c</mml:mi><mml:mrow><mml:msub><mml:mi mathvariant="normal">O</mml:mi><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:mrow></mml:msub></mml:mrow><mml:mrow><mml:mi mathvariant="normal">d</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mi mathvariant="normal">others</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> on the afternoon of 6 April is positive, indicating that physical processes were one of the reasons for the occurrence of O<inline-formula><mml:math id="M175" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> pollution.</p>
      <p id="d1e7453">The rate of O<inline-formula><mml:math id="M176" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> chemical production and precursor sensitivities were calculated using a method described in previous studies (Liu et al., 2022; Wang et al., 2018). As displayed in Fig. 5d, the net O<inline-formula><mml:math id="M177" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> production rate on 6 April 2021 was significantly higher than that on other days, indicating that chemical processes were also an important cause of O<inline-formula><mml:math id="M178" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> pollution. The sensitivity of the O<inline-formula><mml:math id="M179" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> formation to its precursors can be represented by relative incremental reactivity (RIR). Figure 6 shows the daily average RIR values of VOCs, NO<inline-formula><mml:math id="M180" display="inline"><mml:msub><mml:mi/><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula> and CO. The RIR values of VOCs and CO were positive, which indicates that reducing the concentration of VOCs and CO can effectively reduce the chemical formation of O<inline-formula><mml:math id="M181" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula>. Except for 8 April, the RIR values of NO<inline-formula><mml:math id="M182" display="inline"><mml:msub><mml:mi/><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula> were negative, indicating that decreasing the NO<inline-formula><mml:math id="M183" display="inline"><mml:msub><mml:mi/><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula> concentration leads to an increase in O<inline-formula><mml:math id="M184" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> concentration. The negative values of RIR for NO<inline-formula><mml:math id="M185" display="inline"><mml:msub><mml:mi/><mml:mi>x</mml:mi></mml:msub></mml:math></inline-formula> and higher positive values of RIR for VOC indicate that the ozone formation at the Heshan Atmospheric Supersite was mostly likely under a VOC limited regime. The result was consistent with a previous study (He et al., 2019), indicating that the application of ROMAC in chemical process diagnosis is reliable.</p>
      <p id="d1e7547">The application of this case demonstrates the ability of ROMAC to quantify the contribution of physical and chemical processes to air pollutant concentrations. Compared with the traditional observation-based box model (OBM), ROMAC is superior in evaluating the impact of physical processes on pollutant concentrations. Compared with emission-based 3-D air quality models (e.g., CMAQ, WRF-Chem, NAQPMS), the observation-based dynamic optimization algorithm in ROMAC reduces the uncertainty introduced by emission inventory and meteorological simulation.</p>
</sec>
</sec>
<sec id="Ch1.S4" sec-type="conclusions">
  <label>4</label><title>Future developments</title>
      <p id="d1e7560">ROMAC will be continuously updated and developed. Functionality for future improvements and upgrades includes the following: <list list-type="bullet"><list-item>
      <p id="d1e7565">A multiphase chemical reaction module and a module for gas–particle partitioning and sectional simulation are being developed.</p></list-item><list-item>
      <p id="d1e7569">Adjoint sensitivity analysis will be added in a future version, and users can use ROMAC to analyze the relationship between precursors and secondary pollutants.</p></list-item><list-item>
      <p id="d1e7573">The ensemble Kalman filter (EnKF) will be added to dynamically optimize the physical process in future versions.</p></list-item><list-item>
      <p id="d1e7577">In a future development roadmap, we have plans to introduce a modeling framework version of ROMAC known as “ROMAC plug-in.” This ROMAC plug-in will support calls from Python or Fortran, ensuring compatibility and flexibility for users. Importantly, the efficient design of ROMAC will be maintained, allowing for an optimized performance. The kernel of the ROMAC plug-in will be specifically engineered to provide users with flexibility to effortlessly construct their own models or integrate ROMAC with existing frameworks, such as CTMs.</p></list-item></list></p><?xmltex \hack{\clearpage}?>
</sec>

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

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

<?xmltex \floatpos{h!}?><table-wrap id="App1.Ch1.S1.T1"><?xmltex \hack{\hsize\textwidth}?><?xmltex \currentcnt{A1}?><label>Table A1</label><caption><p id="d1e7595">Initial species concentration used for model comparisons (unit: molecules cm<inline-formula><mml:math id="M186" display="inline"><mml:msup><mml:mi/><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:msup></mml:math></inline-formula>).</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="right"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="left"/>
     <oasis:colspec colnum="6" colname="col6" align="right"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Species</oasis:entry>
         <oasis:entry colname="col2">Concentration</oasis:entry>
         <oasis:entry colname="col3">Species</oasis:entry>
         <oasis:entry colname="col4">Concentration</oasis:entry>
         <oasis:entry colname="col5">Species</oasis:entry>
         <oasis:entry colname="col6">Concentration</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">O<inline-formula><mml:math id="M187" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M188" display="inline"><mml:mrow><mml:mn mathvariant="normal">5.20</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">NC<inline-formula><mml:math id="M189" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">11</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M190" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">24</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M191" display="inline"><mml:mrow><mml:mn mathvariant="normal">4.90</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">TM123B</oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M192" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.20</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">NO<inline-formula><mml:math id="M193" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M194" display="inline"><mml:mrow><mml:mn mathvariant="normal">9.80</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">NC<inline-formula><mml:math id="M195" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">12</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M196" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">26</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M197" display="inline"><mml:mrow><mml:mn mathvariant="normal">9.80</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">STYRENE</oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M198" display="inline"><mml:mrow><mml:mn mathvariant="normal">5.90</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">NO</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M199" display="inline"><mml:mrow><mml:mn mathvariant="normal">9.80</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">C<inline-formula><mml:math id="M200" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M201" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M202" display="inline"><mml:mrow><mml:mn mathvariant="normal">4.70</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">C<inline-formula><mml:math id="M203" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M204" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">6</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M205" display="inline"><mml:mrow><mml:mn mathvariant="normal">4.90</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">CO</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M206" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">13</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">C<inline-formula><mml:math id="M207" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M208" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">6</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M209" display="inline"><mml:mrow><mml:mn mathvariant="normal">5.70</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">BENZAL</oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M210" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.90</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SO<inline-formula><mml:math id="M211" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M212" display="inline"><mml:mrow><mml:mn mathvariant="normal">7.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">BUT1ENE</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M213" display="inline"><mml:mrow><mml:mn mathvariant="normal">7.40</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">CH<inline-formula><mml:math id="M214" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula>COCH<inline-formula><mml:math id="M215" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M216" display="inline"><mml:mrow><mml:mn mathvariant="normal">9.10</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">NO<inline-formula><mml:math id="M217" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M218" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.40</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">TBUT2ENE</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M219" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5">MEK</oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M220" display="inline"><mml:mrow><mml:mn mathvariant="normal">4.90</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">C<inline-formula><mml:math id="M221" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M222" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M223" display="inline"><mml:mrow><mml:mn mathvariant="normal">6.20</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">C<inline-formula><mml:math id="M224" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">5</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M225" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">8</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M226" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">C<inline-formula><mml:math id="M227" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M228" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">6</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M229" display="inline"><mml:mrow><mml:mn mathvariant="normal">9.70</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">PENT1ENE</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M230" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.80</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">C<inline-formula><mml:math id="M231" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M232" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">8</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M233" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.40</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">TPENT2ENE</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M234" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">IC<inline-formula><mml:math id="M235" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M236" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">10</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M237" display="inline"><mml:mrow><mml:mn mathvariant="normal">5.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">CPENT2ENE</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M238" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">NC<inline-formula><mml:math id="M239" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">4</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M240" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">10</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M241" display="inline"><mml:mrow><mml:mn mathvariant="normal">9.90</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">HEX1ENE</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M242" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">8</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">IC<inline-formula><mml:math id="M243" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">5</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M244" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">12</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M245" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.30</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">TOLUENE</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M246" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">NC<inline-formula><mml:math id="M247" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">5</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M248" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">12</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M249" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.70</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">BENZENE</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M250" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.40</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">CHEX</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M251" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.70</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">EBENZ</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M252" display="inline"><mml:mrow><mml:mn mathvariant="normal">4.20</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">M22C4</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M253" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.20</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">OXYL</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M254" display="inline"><mml:mrow><mml:mn mathvariant="normal">5.80</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">M23C4</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M255" display="inline"><mml:mrow><mml:mn mathvariant="normal">7.20</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">IPBENZ</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M256" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">M3PE</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M257" display="inline"><mml:mrow><mml:mn mathvariant="normal">7.40</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">PBENZ</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M258" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.20</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">NC<inline-formula><mml:math id="M259" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">6</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M260" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">14</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M261" display="inline"><mml:mrow><mml:mn mathvariant="normal">8.40</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">OETHTOL</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M262" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">M2HEX</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M263" display="inline"><mml:mrow><mml:mn mathvariant="normal">6.60</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">METHTOL</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M264" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">M3HEX</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M265" display="inline"><mml:mrow><mml:mn mathvariant="normal">6.40</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">TM135B</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M266" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">NC<inline-formula><mml:math id="M267" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">7</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M268" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">16</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M269" display="inline"><mml:mrow><mml:mn mathvariant="normal">4.40</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">HCHO</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M270" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.20</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">NC<inline-formula><mml:math id="M271" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">8</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M272" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">18</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M273" display="inline"><mml:mrow><mml:mn mathvariant="normal">4.40</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">CH<inline-formula><mml:math id="M274" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula>CHO</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M275" display="inline"><mml:mrow><mml:mn mathvariant="normal">3.90</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">10</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">NC<inline-formula><mml:math id="M276" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">9</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M277" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">20</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M278" display="inline"><mml:mrow><mml:mn mathvariant="normal">4.40</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">C<inline-formula><mml:math id="M279" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M280" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">5</mml:mn></mml:msub></mml:math></inline-formula>CHO</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M281" display="inline"><mml:mrow><mml:mn mathvariant="normal">3.40</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">NC<inline-formula><mml:math id="M282" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">10</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M283" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">22</mml:mn></mml:msub></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M284" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.50</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">C<inline-formula><mml:math id="M285" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula>H<inline-formula><mml:math id="M286" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">7</mml:mn></mml:msub></mml:math></inline-formula>CHO</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M287" display="inline"><mml:mrow><mml:mn mathvariant="normal">1.70</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">PETHTOL</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M288" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.00</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">MIBK</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M289" display="inline"><mml:mrow><mml:mn mathvariant="normal">3.80</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">TM124B</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M290" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.20</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">9</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">HEX2ONE</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M291" display="inline"><mml:mrow><mml:mn mathvariant="normal">6.30</mml:mn><mml:mo>×</mml:mo><mml:msup><mml:mn mathvariant="normal">10</mml:mn><mml:mn mathvariant="normal">11</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col5"/>
         <oasis:entry colname="col6"/>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table><?xmltex \gdef\@currentlabel{A1}?></table-wrap>

<?xmltex \floatpos{h!}?><table-wrap id="App1.Ch1.S1.T2"><?xmltex \hack{\hsize\textwidth}?><?xmltex \currentcnt{A2}?><label>Table A2</label><caption><p id="d1e9350">CPU time used by the EBI solver at different integration time step sizes (unit: seconds). “Nonconvergence” represents that the EBI solver fails to converge.</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="left"/>
     <oasis:colspec colnum="3" colname="col3" align="left"/>
     <oasis:colspec colnum="4" colname="col4" align="left"/>
     <oasis:colspec colnum="5" colname="col5" align="left"/>
     <oasis:colspec colnum="6" colname="col6" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Time step</oasis:entry>
         <oasis:entry colname="col2">1</oasis:entry>
         <oasis:entry colname="col3">10</oasis:entry>
         <oasis:entry colname="col4">50</oasis:entry>
         <oasis:entry colname="col5">120</oasis:entry>
         <oasis:entry colname="col6">900</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">CPU time</oasis:entry>
         <oasis:entry colname="col2">256</oasis:entry>
         <oasis:entry colname="col3">73</oasis:entry>
         <oasis:entry colname="col4">Nonconvergence</oasis:entry>
         <oasis:entry colname="col5">Nonconvergence</oasis:entry>
         <oasis:entry colname="col6">Nonconvergence</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table><?xmltex \gdef\@currentlabel{A2}?></table-wrap>

<?xmltex \hack{\clearpage}?><?xmltex \floatpos{h!}?><fig id="App1.Ch1.S1.F7"><?xmltex \currentcnt{A1}?><?xmltex \def\figurename{Figure}?><label>Figure A1</label><caption><p id="d1e9425">Comparison of the simulation results between ROMAC and AtChem for nine substances. ROMAC used the VSVOR solver in this test.</p></caption>
        <?xmltex \hack{\hsize\textwidth}?>
        <?xmltex \igopts{width=483.69685pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/6049/2023/gmd-16-6049-2023-f07.png"/>

      </fig>

      <?xmltex \floatpos{h!}?><fig id="App1.Ch1.S1.F8"><?xmltex \currentcnt{A2}?><?xmltex \def\figurename{Figure}?><label>Figure A2</label><caption><p id="d1e9438"><bold>(a)</bold> Time series of relative errors, with dots marking the maximum values. <bold>(b)</bold> Growth rate of relative errors.</p></caption>
        <?xmltex \hack{\hsize\textwidth}?>
        <?xmltex \igopts{width=483.69685pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/6049/2023/gmd-16-6049-2023-f08.png"/>

      </fig>

<?xmltex \hack{\clearpage}?><?xmltex \floatpos{h!}?><fig id="App1.Ch1.S1.F9"><?xmltex \currentcnt{A3}?><?xmltex \def\figurename{Figure}?><label>Figure A3</label><caption><p id="d1e9457">Meteorological data input to the model. <bold>(a)</bold> Temperature. <bold>(b)</bold> Relative humidity. <bold>(c)</bold> Atmospheric pressure. <bold>(d)</bold> Photolysis rate.</p></caption>
        <?xmltex \hack{\hsize\textwidth}?>
        <?xmltex \igopts{width=341.433071pt}?><graphic xlink:href="https://gmd.copernicus.org/articles/16/6049/2023/gmd-16-6049-2023-f09.png"/>

      </fig>

<?xmltex \hack{\clearpage}?>
</app>

<?pagebreak page6063?><app id="App1.Ch1.S2">
  <?xmltex \currentcnt{B}?><label>Appendix B</label><title>Nomenclature</title>
      <p id="d1e9490"><table-wrap id="Taba" position="anchor"><oasis:table><oasis:tgroup cols="2">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="justify" colwidth="15cm"/>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">ODEs</oasis:entry>
         <oasis:entry colname="col2">Ordinary differential equations</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">VSVOR</oasis:entry>
         <oasis:entry colname="col2">Variable-step and variable-order solver</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">atol</oasis:entry>
         <oasis:entry colname="col2">absolute tolerance</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">rtol</oasis:entry>
         <oasis:entry colname="col2">relative tolerance</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M292" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">The reactant in a chemical reaction</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M293" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">The product in a chemical reaction</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M294" display="inline"><mml:mi mathvariant="italic">α</mml:mi></mml:math></inline-formula>, <inline-formula><mml:math id="M295" display="inline"><mml:mi mathvariant="italic">β</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Stoichiometric number</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M296" display="inline"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mi>t</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Concentration of species at time <inline-formula><mml:math id="M297" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M298" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mi>i</mml:mi></mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:mfenced></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Rate of change of species <inline-formula><mml:math id="M299" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> at time <inline-formula><mml:math id="M300" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M301" display="inline"><mml:mrow><mml:msub><mml:mi>P</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Product rate of species <inline-formula><mml:math id="M302" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> at time <inline-formula><mml:math id="M303" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M304" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Loss rate of species <inline-formula><mml:math id="M305" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> at time <inline-formula><mml:math id="M306" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M307" display="inline"><mml:mrow><mml:msub><mml:mi>l</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>,</mml:mo><mml:mi>R</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">The part of the chemical reaction rate that is not directly related to the concentration of species <inline-formula><mml:math id="M308" display="inline"><mml:mi>i</mml:mi></mml:math></inline-formula> in reaction <inline-formula><mml:math id="M309" display="inline"><mml:mi>R</mml:mi></mml:math></inline-formula> at time <inline-formula><mml:math id="M310" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M311" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>t</mml:mi></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Integration time step size</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M312" display="inline"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">The objective function when Newton's method solves the implicit Euler method</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M313" display="inline"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">The objective function when Newton's method solves the implicit trapezoidal method</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M314" display="inline"><mml:mrow><mml:msubsup><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow><mml:mi>k</mml:mi></mml:msubsup></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Species concentration at iteration <inline-formula><mml:math id="M315" display="inline"><mml:mi>k</mml:mi></mml:math></inline-formula> of Newton's method</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M316" display="inline"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">The Jacobian matrix of <inline-formula><mml:math id="M317" display="inline"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M318" display="inline"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">The Jacobian matrix of <inline-formula><mml:math id="M319" display="inline"><mml:mrow><mml:msub><mml:mi>g</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub><mml:mfenced open="(" close=")"><mml:mrow><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:mfenced></mml:mrow></mml:math></inline-formula></oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M320" display="inline"><mml:mrow><mml:mi mathvariant="normal">∇</mml:mi><mml:msup><mml:mi>g</mml:mi><mml:mrow><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msup><mml:mo>(</mml:mo><mml:msub><mml:mi>C</mml:mi><mml:mrow><mml:mi>t</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">The inverse of the Jacobian matrix</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M321" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">0</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Integration time step size equal to <inline-formula><mml:math id="M322" display="inline"><mml:mrow><mml:mn mathvariant="normal">2.22</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">16</mml:mn></mml:mrow></mml:msup></mml:mrow></mml:math></inline-formula> s</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M323" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">1</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Minimum species atmospheric lifetime in chemical mechanisms</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M324" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">The maximum time step size necessary to achieve diagonal dominance of the Jacobian matrix.</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M325" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">init</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Initial integration time step size</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M326" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">max</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">The maximum integration time step to ensure the result does not exceed the preset tolerance</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M327" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>t</mml:mi><mml:mi mathvariant="normal">opt</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Optimal integration step size</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">RERR</oasis:entry>
         <oasis:entry colname="col2">Relative error calculated by doubled-step method</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">LTE</oasis:entry>
         <oasis:entry colname="col2">Local truncation error</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">atol</oasis:entry>
         <oasis:entry colname="col2">Absolute tolerance</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">rtol</oasis:entry>
         <oasis:entry colname="col2">Relative tolerance</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">Rn</oasis:entry>
         <oasis:entry colname="col2">Lagrangian remainder in the Taylor expansion</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1"><inline-formula><mml:math id="M328" display="inline"><mml:mi mathvariant="italic">ξ</mml:mi></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col2">Real number in the Lagrangian remainder in the Taylor expansion</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:tbody>
   </oasis:tgroup></oasis:table></table-wrap></p><?xmltex \hack{\clearpage}?>
</app>
  </app-group><notes notes-type="codedataavailability"><title>Code and data availability</title>

      <p id="d1e10252">The current version of ROMAC coupled MCM v3.3.1 is archived on Zenodo: <ext-link xlink:href="https://doi.org/10.5281/zenodo.7900781" ext-link-type="DOI">10.5281/zenodo.7900781</ext-link> (Li, 2023a) under the Attribution 4.0 International licence.</p>

      <p id="d1e10258">The input data used to produce the results used in this paper is archived on Zenodo (<ext-link xlink:href="https://doi.org/10.5281/zenodo.7900710" ext-link-type="DOI">10.5281/zenodo.7900710</ext-link>, Li, 2023b).</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d1e10267">JL: The developer of all model source code and algorithms for ROMAC; Conceptualization; Formal analysis; Writing – Original Draft.</p>

      <p id="d1e10270">CZ: Formal analysis; Writing – Review &amp; Editing.</p>

      <p id="d1e10273">WZ: Formal analysis; Software testing.</p>

      <p id="d1e10276">SH: The principal investigator of chamber study case; Data curation.</p>

      <p id="d1e10279">YW: Model Comparison and Evaluation.</p>

      <p id="d1e10283">HW: Funding acquisition; Writing – review &amp; editing.</p>

      <p id="d1e10286">BW: Funding acquisition; Writing – review &amp; editing.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d1e10292">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="d1e10298">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. While Copernicus Publications makes every effort to include appropriate place names, the final responsibility lies with the authors.</p>
  </notes><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d1e10304">This work was supported by the National Natural Science Foundation of China (grant nos. 42121004 and 42077190), and Science and Technology Project of Guangdong Province of China (grant no. 2019B121202002).</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

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

      <ref id="bib1.bib1"><label>1</label><?label 1?><mixed-citation>Alvanos, M. and Christoudias, T.: GPU-accelerated atmospheric chemical kinetics in the ECHAM/MESSy (EMAC) Earth system model (version 2.52), Geosci. Model Dev., 10, 3679–3693, <ext-link xlink:href="https://doi.org/10.5194/gmd-10-3679-2017" ext-link-type="DOI">10.5194/gmd-10-3679-2017</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bib2"><label>2</label><?label 1?><mixed-citation> Aro, C. J.: CHEMSODE: a stiff ODE solver for the equations of chemical kinetics, Comput. Phys. Commun, 97, 304–314, 1996a.</mixed-citation></ref>
      <ref id="bib1.bib3"><label>3</label><?label 1?><mixed-citation> Aro, C. J.: A stiff ODE preconditioner based on Newton linearization, Appl. Numer. Math., 21, 335–352, 1996b.</mixed-citation></ref>
      <ref id="bib1.bib4"><label>4</label><?label 1?><mixed-citation>Cariolle, D., Moinat, P., Teyssèdre, H., Giraud, L., Josse, B., and Lefèvre, F.: ASIS v1.0: an adaptive solver for the simulation of atmospheric chemistry, Geosci. Model Dev., 10, 1467–1485, <ext-link xlink:href="https://doi.org/10.5194/gmd-10-1467-2017" ext-link-type="DOI">10.5194/gmd-10-1467-2017</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bib5"><label>5</label><?label 1?><mixed-citation>Carter, W. P. L.: Development of the SAPRC-07 chemical mechanism, Atmos. Environ., 44, 5324–5335, <ext-link xlink:href="https://doi.org/10.1016/j.atmosenv.2010.01.026" ext-link-type="DOI">10.1016/j.atmosenv.2010.01.026</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bib6"><label>6</label><?label 1?><mixed-citation>Chen, Y. Z., Sexton, K. G., Jerry, R. E., Surratt, J. D., and Vizuete, W.: Assessment of SAPRC07 with updated isoprene chemistry against outdoor chamber experiments, Atmos. Environ., 105, 109-120, <ext-link xlink:href="https://doi.org/10.1016/j.atmosenv.2015.01.042" ext-link-type="DOI">10.1016/j.atmosenv.2015.01.042</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bib7"><label>7</label><?label 1?><mixed-citation>Cheng, H. R., Guo, H., Saunders, S. M., Lam, S. H. M., Jiang, F., Wang, X. M., Simpson, I. J., Blake, D. R., Louie, P. K. K., and Wang, T. J.: Assessing photochemical ozone formation in the Pearl River Delta with a photochemical trajectory model, Atmos. Environ., 44, 4199–4208, <ext-link xlink:href="https://doi.org/10.1016/j.atmosenv.2010.07.019" ext-link-type="DOI">10.1016/j.atmosenv.2010.07.019</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bib8"><label>8</label><?label 1?><mixed-citation>IEEE: IEEE Standard for Floating-Point Arithmetic, IEEE Std 754-2019 (Revision of IEEE 754-2008), 1–84, 22 July 2019, <ext-link xlink:href="https://doi.org/10.1109/IEEESTD.2019.8766229" ext-link-type="DOI">10.1109/IEEESTD.2019.8766229</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bib9"><label>9</label><?label 1?><mixed-citation>Dada, L., Lehtipalo, K., Kontkanen, J., Nieminen, T., Baalbaki, R., Ahonen, L., Duplissy, J., Yan, C., Chu, B., Petaja, T., Lehtinen, K., Kerminen, V. M., Kulmala, M., and Kangasluoma, J.: Formation and growth of sub-3-nm aerosol particles in experimental chambers, Nat. Protoc., 15, 1013–1040, <ext-link xlink:href="https://doi.org/10.1038/s41596-019-0274-z" ext-link-type="DOI">10.1038/s41596-019-0274-z</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bib10"><label>10</label><?label 1?><mixed-citation>Decker, Z. C. J., Zarzana, K. J., Coggon, M., Min, K. E., Pollack, I., Ryerson, T. B., Peischl, J., Edwards, P., Dube, W. P., Markovic, M. Z., Roberts, J. M., Veres, P. R., Graus, M., Warneke, C., de Gouw, J., Hatch, L. E., Barsanti, K. C., and Brown, S. S.: Nighttime Chemical Transformation in Biomass Burning Plumes: A Box Model Analysis Initialized with Aircraft Observations, Environ. Sci. Technol., 53, 2529–2538, <ext-link xlink:href="https://doi.org/10.1021/acs.est.8b05359" ext-link-type="DOI">10.1021/acs.est.8b05359</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib11"><label>11</label><?label 1?><mixed-citation>Decker, Z. C. J., Robinson, M. A., Barsanti, K. C., Bourgeois, I., Coggon, M. M., DiGangi, J. P., Diskin, G. S., Flocke, F. M., Franchin, A., Fredrickson, C. D., Gkatzelis, G. I., Hall, S. R., Halliday, H., Holmes, C. D., Huey, L. G., Lee, Y. R., Lindaas, J., Middlebrook, A. M., Montzka, D. D., Moore, R., Neuman, J. A., Nowak, J. B., Palm, B. B., Peischl, J., Piel, F., Rickly, P. S., Rollins, A. W., Ryerson, T. B., Schwantes, R. H., Sekimoto, K., Thornhill, L., Thornton, J. A., Tyndall, G. S., Ullmann, K., Van Rooy, P., Veres, P. R., Warneke, C., Washenfelder, R. A., Weinheimer, A. J., Wiggins, E., Winstead, E., Wisthaler, A., Womack, C., and Brown, S. S.: Nighttime and daytime dark oxidation chemistry in wildfire plumes: an observation and model analysis of FIREX-AQ aircraft data, Atmos. Chem. Phys., 21, 16293–16317, <ext-link xlink:href="https://doi.org/10.5194/acp-21-16293-2021" ext-link-type="DOI">10.5194/acp-21-16293-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib12"><label>12</label><?label 1?><mixed-citation>Djouad, R. and Sportisse, B.: Partitioning techniques and lumping computation for reducing chemical kinetics. APLA: An automatic partitioning and lumping algorithm, Appl. Numer. Math., 43, 383–398, <ext-link xlink:href="https://doi.org/10.1016/S0168-9274(02)00111-3" ext-link-type="DOI">10.1016/S0168-9274(02)00111-3</ext-link>, 2002.</mixed-citation></ref>
      <ref id="bib1.bib13"><label>13</label><?label 1?><mixed-citation>Emmons, L. K., Walters, S., Hess, P. G., Lamarque, J.-F., Pfister, G. G., Fillmore, D., Granier, C., Guenther, A., Kinnison, D., Laepple, T., Orlando, J., Tie, X., Tyndall, G., Wiedinmyer, C., Baughcum, S. L., and Kloster, S.: Description and evaluation of the Model for Ozone and Related chemical Tracers, version 4 (MOZART-4), Geosci. Model Dev., 3, 43–67, <ext-link xlink:href="https://doi.org/10.5194/gmd-3-43-2010" ext-link-type="DOI">10.5194/gmd-3-43-2010</ext-link>, 2010.</mixed-citation></ref>
      <ref id="bib1.bib14"><label>14</label><?label 1?><mixed-citation>Esentürk, E., Abraham, N. L., Archer-Nicholls, S., Mitsakou, C., Griffiths, P., Archibald, A., and Pyle, J.: Quasi-Newton methods for atmospheric chemistry simulations: implementatio<?pagebreak page6065?>n in UKCA UM vn10.8, Geosci. Model Dev., 11, 3089–3108, <ext-link xlink:href="https://doi.org/10.5194/gmd-11-3089-2018" ext-link-type="DOI">10.5194/gmd-11-3089-2018</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bib15"><label>15</label><?label 1?><mixed-citation>He, Z., Wang, X., Ling, Z., Zhao, J., Guo, H., Shao, M., and Wang, Z.: Contributions of different anthropogenic volatile organic compound sources to ozone formation at a receptor site in the Pearl River Delta region and its policy implications, Atmos. Chem. Phys., 19, 8801–8816, <ext-link xlink:href="https://doi.org/10.5194/acp-19-8801-2019" ext-link-type="DOI">10.5194/acp-19-8801-2019</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib16"><label>16</label><?label 1?><mixed-citation> Hertel, O., Berkowicz, R., and Christensen, J.: Test of two numerical schemes for use in atmospher, Atmos. Environ., 27, 2591–2611, 1993.</mixed-citation></ref>
      <ref id="bib1.bib17"><label>17</label><?label 1?><mixed-citation>Huang, L. and Topping, D.: JlBox v1.1: a Julia-based multi-phase atmospheric chemistry box model, Geosci. Model Dev., 14, 2187–2203, <ext-link xlink:href="https://doi.org/10.5194/gmd-14-2187-2021" ext-link-type="DOI">10.5194/gmd-14-2187-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib18"><label>18</label><?label 1?><mixed-citation>Jenkin, M. E., Young, J. C., and Rickard, A. R.: The MCM v3.3.1 degradation scheme for isoprene, Atmos. Chem. Phys., 15, 11433–11459, <ext-link xlink:href="https://doi.org/10.5194/acp-15-11433-2015" ext-link-type="DOI">10.5194/acp-15-11433-2015</ext-link>, 2015.</mixed-citation></ref>
      <ref id="bib1.bib19"><label>19</label><?label 1?><mixed-citation>Jiang, X., Lv, C., You, B., Liu, Z., Wang, X., and Du, L.: Joint impact of atmospheric SO<inline-formula><mml:math id="M329" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> and NH<inline-formula><mml:math id="M330" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> on the formation of nanoparticles from photo-oxidation of a typical biomass burning compound, Environmental Science: Nano, 7, 2532–2545, <ext-link xlink:href="https://doi.org/10.1039/d0en00520g" ext-link-type="DOI">10.1039/d0en00520g</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bib20"><label>20</label><?label 1?><mixed-citation>Jimenez, P.: Comparison of photochemical mechanisms for air quality modeling, Atmos. Environ., 37, 4179–4194, <ext-link xlink:href="https://doi.org/10.1016/s1352-2310(03)00567-3" ext-link-type="DOI">10.1016/s1352-2310(03)00567-3</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bib21"><label>21</label><?label 1?><mixed-citation>Li, J.: ROMAC v1.0 (1.0), Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.7900781" ext-link-type="DOI">10.5281/zenodo.7900781</ext-link>, 2023a.</mixed-citation></ref>
      <ref id="bib1.bib22"><label>22</label><?label 1?><mixed-citation>Li, J.: Supplementary data, Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.7900710" ext-link-type="DOI">10.5281/zenodo.7900710</ext-link>, 2023b.</mixed-citation></ref>
      <ref id="bib1.bib23"><label>23</label><?label 1?><mixed-citation>Li, X. B., Fan, G., Lou, S., Yuan, B., Wang, X., and Shao, M.: Transport and boundary layer interaction contribution to extremely high surface ozone levels in eastern China, Environ. Pollut., 268, 115804, <ext-link xlink:href="https://doi.org/10.1016/j.envpol.2020.115804" ext-link-type="DOI">10.1016/j.envpol.2020.115804</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib24"><label>24</label><?label 1?><mixed-citation>Lin, H., Long, M. S., Sander, R., Sandu, A., Yantosca, R. M., Estrada, L. A., Shen, L., and Jacob, D. J.: An adaptive auto-reduction solver for speeding up integration of chemical kinetics in atmospheric chemistry models: Implementation and evaluation in the Kinetic Pre-Processor (KPP) version 3.0.0, J. Adv. Model. Earth Sy., 15, e2022MS003293, <ext-link xlink:href="https://doi.org/10.1029/2022MS003293" ext-link-type="DOI">10.1029/2022MS003293</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bib25"><label>25</label><?label 1?><mixed-citation>Ling, Z. H., Zhao, J., Fan, S. J., and Wang, X. M.: Sources of formaldehyde and their contributions to photochemical O(3) formation at an urban site in the Pearl River Delta, southern China, Chemosphere, 168, 1293–1301, <ext-link xlink:href="https://doi.org/10.1016/j.chemosphere.2016.11.140" ext-link-type="DOI">10.1016/j.chemosphere.2016.11.140</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bib26"><label>26</label><?label 1?><mixed-citation>Liu, T., Hong, Y., Li, M., Xu, L., Chen, J., Bian, Y., Yang, C., Dan, Y., Zhang, Y., Xue, L., Zhao, M., Huang, Z., and Wang, H.: Atmospheric oxidation capacity and ozone pollution mechanism in a coastal city of southeastern China: analysis of a typical photochemical episode by an observation-based model, Atmos. Chem. Phys., 22, 2173–2190, <ext-link xlink:href="https://doi.org/10.5194/acp-22-2173-2022" ext-link-type="DOI">10.5194/acp-22-2173-2022</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bib27"><label>27</label><?label 1?><mixed-citation>Mott, D. R., Oran, E. S., and van Leer, B.: A Quasi-Steady-State Solver for the Stiff Ordinary Differential Equations of Reaction Kinetics, J. Comput. Phys., 164, 407–428, <ext-link xlink:href="https://doi.org/10.1006/jcph.2000.6605" ext-link-type="DOI">10.1006/jcph.2000.6605</ext-link>, 2000.</mixed-citation></ref>
      <ref id="bib1.bib28"><label>28</label><?label 1?><mixed-citation>Novelli, A., Kaminski, M., Rolletter, M., Acir, I.-H., Bohn, B., Dorn, H.-P., Li, X., Lutz, A., Nehr, S., Rohrer, F., Tillmann, R., Wegener, R., Holland, F., Hofzumahaus, A., Kiendler-Scharr, A., Wahner, A., and Fuchs, H.: Evaluation of OH and HO<inline-formula><mml:math id="M331" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">2</mml:mn></mml:msub></mml:math></inline-formula> concentrations and their budgets during photooxidation of 2-methyl-3-butene-2-ol (MBO) in the atmospheric simulation chamber SAPHIR, Atmos. Chem. Phys., 18, 11409–11422, <ext-link xlink:href="https://doi.org/10.5194/acp-18-11409-2018" ext-link-type="DOI">10.5194/acp-18-11409-2018</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bib29"><label>29</label><?label 1?><mixed-citation>O'Meara, S. P., Xu, S., Topping, D., Alfarra, M. R., Capes, G., Lowe, D., Shao, Y., and McFiggans, G.: PyCHAM (v2.1.1): a Python box model for simulating aerosol chambers, Geosci. Model Dev., 14, 675–702, <ext-link xlink:href="https://doi.org/10.5194/gmd-14-675-2021" ext-link-type="DOI">10.5194/gmd-14-675-2021</ext-link>, 2021.</mixed-citation></ref>
      <ref id="bib1.bib30"><label>30</label><?label 1?><mixed-citation>Sander, R., Baumgaertner, A., Gromov, S., Harder, H., Jöckel, P., Kerkweg, A., Kubistin, D., Regelin, E., Riede, H., Sandu, A., Taraborrelli, D., Tost, H., and Xie, Z.-Q.: The atmospheric chemistry box model CAABA/MECCA-3.0, Geosci. Model Dev., 4, 373–380, <ext-link xlink:href="https://doi.org/10.5194/gmd-4-373-2011" ext-link-type="DOI">10.5194/gmd-4-373-2011</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bib31"><label>31</label><?label 1?><mixed-citation>Sander, R., Baumgaertner, A., Cabrera-Perez, D., Frank, F., Gromov, S., Grooß, J.-U., Harder, H., Huijnen, V., Jöckel, P., Karydis, V. A., Niemeyer, K. E., Pozzer, A., Riede, H., Schultz, M. G., Taraborrelli, D., and Tauer, S.: The community atmospheric chemistry box model CAABA/MECCA-4.0, Geosci. Model Dev., 12, 1365–1385, <ext-link xlink:href="https://doi.org/10.5194/gmd-12-1365-2019" ext-link-type="DOI">10.5194/gmd-12-1365-2019</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib32"><label>32</label><?label 1?><mixed-citation> Sandu, A., Verwer, J. G., Blom, J. G., Spee, E. J., Carmichael, G. R., and Potra, F. A.: Benchmarking stiff ode solvers for atmospheric chemistry problems II: Rosenbrock solvers, Atmos. Environ., 31, 3459–3472, 1997a.</mixed-citation></ref>
      <ref id="bib1.bib33"><label>33</label><?label 1?><mixed-citation> Sandu, A., Verwer, J. G., Loon, M. V., Carmichael, G. R., Potra, F. A., Dabdub, D., and Seinfeld, J. H.: Benchmarking stiff ode solvers for atmospheric chemistry problems-I. implicit vs explicit, Atmos. Environ., 31, 3151–3166, 1997b.</mixed-citation></ref>
      <ref id="bib1.bib34"><label>34</label><?label 1?><mixed-citation>Shen, L., Jacob, D. J., Santillana, M., Bates, K., Zhuang, J., and Chen, W.: A machine-learning-guided adaptive algorithm to reduce the computational cost of integrating kinetics in global atmospheric chemistry models: application to GEOS-Chem versions 12.0.0 and 12.9.1, Geosci. Model Dev., 15, 1677–1687, <ext-link xlink:href="https://doi.org/10.5194/gmd-15-1677-2022" ext-link-type="DOI">10.5194/gmd-15-1677-2022</ext-link>, 2022.</mixed-citation></ref>
      <ref id="bib1.bib35"><label>35</label><?label 1?><mixed-citation>Sommariva, R., Cox, S., Martin, C., Borońska, K., Young, J., Jimack, P. K., Pilling, M. J., Matthaios, V. N., Nelson, B. S., Newland, M. J., Panagi, M., Bloss, W. J., Monks, P. S., and Rickard, A. R.: AtChem (version 1), an open-source box model for the Master Chemical Mechanism, Geosci. Model Dev., 13, 169–183, <ext-link xlink:href="https://doi.org/10.5194/gmd-13-169-2020" ext-link-type="DOI">10.5194/gmd-13-169-2020</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bib36"><label>36</label><?label 1?><mixed-citation> Verwer, J. G., Blom, J. G., Loon, M. V., and Spee, E. J.: A comparison of stiff ODE solvers for atmospheric chemistry problems, Atmos. Environ., 30, 49–58, 1996.</mixed-citation></ref>
      <ref id="bib1.bib37"><label>37</label><?label 1?><mixed-citation>Wang, W., Xiao, Y., Han, S., Zhang, Y., Gong, D., Wang, H., and Wang, B.: A vehicle-mounted dual-smog chamber: Characterization and its preliminary application to evolutionary simulation of photochemical processes in a quasi-realistic atmosphere, J. Environ. Sci., 132, 98–108, <ext-link xlink:href="https://doi.org/10.1016/j.jes.2022.07.034" ext-link-type="DOI">10.1016/j.jes.2022.07.034</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bib38"><label>38</label><?label 1?><mixed-citation>Wang, Y., Wang, H., Guo, H., Lyu, X., Cheng, H., Ling, Z., Louie, P. K. K., Simpson, I. J., Meinardi, S., and Blake, D. R.: Long-term O<inline-formula><mml:math id="M332" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula>–precursor relationships in Hong Kong: field observation and model simulation, Atmos. Chem. Phys., 17, 10919–10935, <ext-link xlink:href="https://doi.org/10.5194/acp-17-10919-2017" ext-link-type="DOI">10.5194/acp-17-10919-2017</ext-link>, 2017.</mixed-citation></ref>
      <?pagebreak page6066?><ref id="bib1.bib39"><label>39</label><?label 1?><mixed-citation>Wang, Y., Guo, H., Zou, S., Lyu, X., Ling, Z., Cheng, H., and Zeren, Y.: Surface O<inline-formula><mml:math id="M333" display="inline"><mml:msub><mml:mi/><mml:mn mathvariant="normal">3</mml:mn></mml:msub></mml:math></inline-formula> photochemistry over the South China Sea: Application of a near-explicit chemical mechanism box model, Environ. Pollut., 234, 155–166, <ext-link xlink:href="https://doi.org/10.1016/j.envpol.2017.11.001" ext-link-type="DOI">10.1016/j.envpol.2017.11.001</ext-link>, 2018.</mixed-citation></ref>
      <ref id="bib1.bib40"><label>40</label><?label 1?><mixed-citation>Wang, Y., Guo, H., Lyu, X., Zhang, L., Zeren, Y., Zou, S., and Ling, Z.: Photochemical evolution of continental air masses and their influence on ozone formation over the South China Sea, Sci. Total Environ., 673, 424–434, <ext-link xlink:href="https://doi.org/10.1016/j.scitotenv.2019.04.075" ext-link-type="DOI">10.1016/j.scitotenv.2019.04.075</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bib41"><label>41</label><?label 1?><mixed-citation>Wang, Y., Liu, T., Gong, D., Wang, H., Guo, H., Liao, M., Deng, S., Cai, H., and Wang, B.: Anthropogenic Pollutants Induce Changes in Peroxyacetyl Nitrate Formation Intensity and Pathways in a Mountainous Background Atmosphere in Southern China, Environ. Sci. Technol., 57, 6253–6262, <ext-link xlink:href="https://doi.org/10.1021/acs.est.2c02845" ext-link-type="DOI">10.1021/acs.est.2c02845</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bib42"><label>42</label><?label 1?><mixed-citation>Wolfe, G. M., Marvin, M. R., Roberts, S. J., Travis, K. R., and Liao, J.: The Framework for 0-D Atmospheric Modeling (F0AM) v3.1, Geosci. Model Dev., 9, 3309–3319, <ext-link xlink:href="https://doi.org/10.5194/gmd-9-3309-2016" ext-link-type="DOI">10.5194/gmd-9-3309-2016</ext-link>, 2016.</mixed-citation></ref>
      <ref id="bib1.bib43"><label>43</label><?label 1?><mixed-citation>Yang, Y., Shao, M., Keßel, S., Li, Y., Lu, K., Lu, S., Williams, J., Zhang, Y., Zeng, L., Nölscher, A. C., Wu, Y., Wang, X., and Zheng, J.: How the OH reactivity affects the ozone production efficiency: case studies in Beijing and Heshan, China, Atmos. Chem. Phys., 17, 7127–7142, <ext-link xlink:href="https://doi.org/10.5194/acp-17-7127-2017" ext-link-type="DOI">10.5194/acp-17-7127-2017</ext-link>, 2017. </mixed-citation></ref><?xmltex \hack{\newpage}?>
      <ref id="bib1.bib44"><label>44</label><?label 1?><mixed-citation>Yarwood, G.: Development, Evaluation and Testing of Version 6 of the Carbon Bond Chemical Mechanism (CB6), Texas Commission on Environmental Quality, <uri>https://www.tceq.texas.gov/airquality/airmod/project/pj_report_pm.html</uri> (last access: 21 October 2023), 2010.</mixed-citation></ref>
      <ref id="bib1.bib45"><label>45</label><?label 1?><mixed-citation>Ying, Q. and Li, J.: Implementation and initial application of the near-explicit Master Chemical Mechanism in the 3D Community Multiscale Air Quality (CMAQ) model, Atmos. Environ., 45, 3244–3256, <ext-link xlink:href="https://doi.org/10.1016/j.atmosenv.2011.03.043" ext-link-type="DOI">10.1016/j.atmosenv.2011.03.043</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bib46"><label>46</label><?label 1?><mixed-citation>Young, T. R. and Boris, J. P.: A numerical technique for solving stiff ordinary differential equations associated with the chemical kinetics of reactive-flow problems, J. Phys. Chem., 81, 2424–2427, <ext-link xlink:href="https://doi.org/10.1021/j100540a018" ext-link-type="DOI">10.1021/j100540a018</ext-link>, 1977.</mixed-citation></ref>
      <ref id="bib1.bib47"><label>47</label><?label 1?><mixed-citation>Zhang, L., Brook, J. R., and Vet, R.: A revised parameterization for gaseous dry deposition in air-quality models, Atmos. Chem. Phys., 3, 2067–2082, <ext-link xlink:href="https://doi.org/10.5194/acp-3-2067-2003" ext-link-type="DOI">10.5194/acp-3-2067-2003</ext-link>, 2003.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>Rapid Adaptive Optimization Model for Atmospheric Chemistry (ROMAC) v1.0</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>1</label><mixed-citation>
      
Alvanos, M. and Christoudias, T.: GPU-accelerated atmospheric chemical kinetics in the ECHAM/MESSy (EMAC) Earth system model (version 2.52), Geosci. Model Dev., 10, 3679–3693, <a href="https://doi.org/10.5194/gmd-10-3679-2017" target="_blank">https://doi.org/10.5194/gmd-10-3679-2017</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>2</label><mixed-citation>
      
Aro, C. J.: CHEMSODE: a stiff ODE solver for the equations of chemical
kinetics, Comput. Phys. Commun, 97, 304–314, 1996a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>3</label><mixed-citation>
      
Aro, C. J.: A stiff ODE preconditioner based on Newton linearization, Appl.
Numer. Math., 21, 335–352, 1996b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>4</label><mixed-citation>
      
Cariolle, D., Moinat, P., Teyssèdre, H., Giraud, L., Josse, B., and Lefèvre, F.: ASIS v1.0: an adaptive solver for the simulation of atmospheric chemistry, Geosci. Model Dev., 10, 1467–1485, <a href="https://doi.org/10.5194/gmd-10-1467-2017" target="_blank">https://doi.org/10.5194/gmd-10-1467-2017</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>5</label><mixed-citation>
      
Carter, W. P. L.: Development of the SAPRC-07 chemical mechanism, Atmos. Environ., 44, 5324–5335, <a href="https://doi.org/10.1016/j.atmosenv.2010.01.026" target="_blank">https://doi.org/10.1016/j.atmosenv.2010.01.026</a>, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>6</label><mixed-citation>
      
Chen, Y. Z., Sexton, K. G., Jerry, R. E., Surratt, J. D., and Vizuete, W.:
Assessment of SAPRC07 with updated isoprene chemistry against outdoor
chamber experiments, Atmos. Environ., 105, 109-120, <a href="https://doi.org/10.1016/j.atmosenv.2015.01.042" target="_blank">https://doi.org/10.1016/j.atmosenv.2015.01.042</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>7</label><mixed-citation>
      
Cheng, H. R., Guo, H., Saunders, S. M., Lam, S. H. M., Jiang, F., Wang, X.
M., Simpson, I. J., Blake, D. R., Louie, P. K. K., and Wang, T. J.:
Assessing photochemical ozone formation in the Pearl River Delta with a
photochemical trajectory model, Atmos. Environ., 44, 4199–4208, <a href="https://doi.org/10.1016/j.atmosenv.2010.07.019" target="_blank">https://doi.org/10.1016/j.atmosenv.2010.07.019</a>, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>8</label><mixed-citation>
      
IEEE: IEEE Standard for Floating-Point Arithmetic, IEEE Std 754-2019 (Revision of IEEE 754-2008), 1–84, 22 July 2019, <a href="https://doi.org/10.1109/IEEESTD.2019.8766229" target="_blank">https://doi.org/10.1109/IEEESTD.2019.8766229</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>9</label><mixed-citation>
      
Dada, L., Lehtipalo, K., Kontkanen, J., Nieminen, T., Baalbaki, R., Ahonen,
L., Duplissy, J., Yan, C., Chu, B., Petaja, T., Lehtinen, K., Kerminen, V.
M., Kulmala, M., and Kangasluoma, J.: Formation and growth of sub-3-nm
aerosol particles in experimental chambers, Nat. Protoc., 15, 1013–1040, <a href="https://doi.org/10.1038/s41596-019-0274-z" target="_blank">https://doi.org/10.1038/s41596-019-0274-z</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>10</label><mixed-citation>
      
Decker, Z. C. J., Zarzana, K. J., Coggon, M., Min, K. E., Pollack, I.,
Ryerson, T. B., Peischl, J., Edwards, P., Dube, W. P., Markovic, M. Z.,
Roberts, J. M., Veres, P. R., Graus, M., Warneke, C., de Gouw, J., Hatch, L.
E., Barsanti, K. C., and Brown, S. S.: Nighttime Chemical Transformation in
Biomass Burning Plumes: A Box Model Analysis Initialized with Aircraft
Observations, Environ. Sci. Technol., 53, 2529–2538, <a href="https://doi.org/10.1021/acs.est.8b05359" target="_blank">https://doi.org/10.1021/acs.est.8b05359</a>,
2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>11</label><mixed-citation>
      
Decker, Z. C. J., Robinson, M. A., Barsanti, K. C., Bourgeois, I., Coggon, M. M., DiGangi, J. P., Diskin, G. S., Flocke, F. M., Franchin, A., Fredrickson, C. D., Gkatzelis, G. I., Hall, S. R., Halliday, H., Holmes, C. D., Huey, L. G., Lee, Y. R., Lindaas, J., Middlebrook, A. M., Montzka, D. D., Moore, R., Neuman, J. A., Nowak, J. B., Palm, B. B., Peischl, J., Piel, F., Rickly, P. S., Rollins, A. W., Ryerson, T. B., Schwantes, R. H., Sekimoto, K., Thornhill, L., Thornton, J. A., Tyndall, G. S., Ullmann, K., Van Rooy, P., Veres, P. R., Warneke, C., Washenfelder, R. A., Weinheimer, A. J., Wiggins, E., Winstead, E., Wisthaler, A., Womack, C., and Brown, S. S.: Nighttime and daytime dark oxidation chemistry in wildfire plumes: an observation and model analysis of FIREX-AQ aircraft data, Atmos. Chem. Phys., 21, 16293–16317, <a href="https://doi.org/10.5194/acp-21-16293-2021" target="_blank">https://doi.org/10.5194/acp-21-16293-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>12</label><mixed-citation>
      
Djouad, R. and Sportisse, B.: Partitioning techniques and lumping computation for reducing chemical kinetics. APLA: An automatic partitioning and lumping algorithm, Appl. Numer. Math., 43, 383–398, <a href="https://doi.org/10.1016/S0168-9274(02)00111-3" target="_blank">https://doi.org/10.1016/S0168-9274(02)00111-3</a>, 2002.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>13</label><mixed-citation>
      
Emmons, L. K., Walters, S., Hess, P. G., Lamarque, J.-F., Pfister, G. G., Fillmore, D., Granier, C., Guenther, A., Kinnison, D., Laepple, T., Orlando, J., Tie, X., Tyndall, G., Wiedinmyer, C., Baughcum, S. L., and Kloster, S.: Description and evaluation of the Model for Ozone and Related chemical Tracers, version 4 (MOZART-4), Geosci. Model Dev., 3, 43–67, <a href="https://doi.org/10.5194/gmd-3-43-2010" target="_blank">https://doi.org/10.5194/gmd-3-43-2010</a>, 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>14</label><mixed-citation>
      
Esentürk, E., Abraham, N. L., Archer-Nicholls, S., Mitsakou, C., Griffiths, P., Archibald, A., and Pyle, J.: Quasi-Newton methods for atmospheric chemistry simulations: implementation in UKCA UM vn10.8, Geosci. Model Dev., 11, 3089–3108, <a href="https://doi.org/10.5194/gmd-11-3089-2018" target="_blank">https://doi.org/10.5194/gmd-11-3089-2018</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>15</label><mixed-citation>
      
He, Z., Wang, X., Ling, Z., Zhao, J., Guo, H., Shao, M., and Wang, Z.: Contributions of different anthropogenic volatile organic compound sources to ozone formation at a receptor site in the Pearl River Delta region and its policy implications, Atmos. Chem. Phys., 19, 8801–8816, <a href="https://doi.org/10.5194/acp-19-8801-2019" target="_blank">https://doi.org/10.5194/acp-19-8801-2019</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>16</label><mixed-citation>
      
Hertel, O., Berkowicz, R., and Christensen, J.: Test of two numerical
schemes for use in atmospher, Atmos. Environ., 27, 2591–2611, 1993.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>17</label><mixed-citation>
      
Huang, L. and Topping, D.: JlBox v1.1: a Julia-based multi-phase atmospheric chemistry box model, Geosci. Model Dev., 14, 2187–2203, <a href="https://doi.org/10.5194/gmd-14-2187-2021" target="_blank">https://doi.org/10.5194/gmd-14-2187-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>18</label><mixed-citation>
      
Jenkin, M. E., Young, J. C., and Rickard, A. R.: The MCM v3.3.1 degradation scheme for isoprene, Atmos. Chem. Phys., 15, 11433–11459, <a href="https://doi.org/10.5194/acp-15-11433-2015" target="_blank">https://doi.org/10.5194/acp-15-11433-2015</a>, 2015.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>19</label><mixed-citation>
      
Jiang, X., Lv, C., You, B., Liu, Z., Wang, X., and Du, L.: Joint impact of
atmospheric SO<sub>2</sub> and NH<sub>3</sub> on the formation of nanoparticles from photo-oxidation
of a typical biomass burning compound, Environmental Science: Nano, 7,
2532–2545, <a href="https://doi.org/10.1039/d0en00520g" target="_blank">https://doi.org/10.1039/d0en00520g</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>20</label><mixed-citation>
      
Jimenez, P.: Comparison of photochemical mechanisms for air quality
modeling, Atmos. Environ., 37, 4179–4194, <a href="https://doi.org/10.1016/s1352-2310(03)00567-3" target="_blank">https://doi.org/10.1016/s1352-2310(03)00567-3</a>, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>21</label><mixed-citation>
      
Li, J.: ROMAC v1.0 (1.0), Zenodo [code], <a href="https://doi.org/10.5281/zenodo.7900781" target="_blank">https://doi.org/10.5281/zenodo.7900781</a>, 2023a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>22</label><mixed-citation>
      
Li, J.: Supplementary data, Zenodo [data set], <a href="https://doi.org/10.5281/zenodo.7900710" target="_blank">https://doi.org/10.5281/zenodo.7900710</a>, 2023b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>23</label><mixed-citation>
      
Li, X. B., Fan, G., Lou, S., Yuan, B., Wang, X., and Shao, M.: Transport and
boundary layer interaction contribution to extremely high surface ozone
levels in eastern China, Environ. Pollut., 268, 115804, <a href="https://doi.org/10.1016/j.envpol.2020.115804" target="_blank">https://doi.org/10.1016/j.envpol.2020.115804</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>24</label><mixed-citation>
      
Lin, H., Long, M. S., Sander, R., Sandu, A., Yantosca, R. M.,
Estrada, L. A., Shen, L., and Jacob, D. J.: An adaptive auto-reduction solver for speeding up integration of chemical kinetics in atmospheric chemistry models: Implementation and evaluation in the Kinetic Pre-Processor (KPP) version 3.0.0, J. Adv. Model. Earth Sy., 15, e2022MS003293, <a href="https://doi.org/10.1029/2022MS003293" target="_blank">https://doi.org/10.1029/2022MS003293</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib25"><label>25</label><mixed-citation>
      
Ling, Z. H., Zhao, J., Fan, S. J., and Wang, X. M.: Sources of formaldehyde
and their contributions to photochemical O(3) formation at an urban site in
the Pearl River Delta, southern China, Chemosphere, 168, 1293–1301, <a href="https://doi.org/10.1016/j.chemosphere.2016.11.140" target="_blank">https://doi.org/10.1016/j.chemosphere.2016.11.140</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib26"><label>26</label><mixed-citation>
      
Liu, T., Hong, Y., Li, M., Xu, L., Chen, J., Bian, Y., Yang, C., Dan, Y., Zhang, Y., Xue, L., Zhao, M., Huang, Z., and Wang, H.: Atmospheric oxidation capacity and ozone pollution mechanism in a coastal city of southeastern China: analysis of a typical photochemical episode by an observation-based model, Atmos. Chem. Phys., 22, 2173–2190, <a href="https://doi.org/10.5194/acp-22-2173-2022" target="_blank">https://doi.org/10.5194/acp-22-2173-2022</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib27"><label>27</label><mixed-citation>
      
Mott, D. R., Oran, E. S., and van Leer, B.: A Quasi-Steady-State Solver for
the Stiff Ordinary Differential Equations of Reaction Kinetics, J.
Comput. Phys., 164, 407–428, <a href="https://doi.org/10.1006/jcph.2000.6605" target="_blank">https://doi.org/10.1006/jcph.2000.6605</a>, 2000.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib28"><label>28</label><mixed-citation>
      
Novelli, A., Kaminski, M., Rolletter, M., Acir, I.-H., Bohn, B., Dorn, H.-P., Li, X., Lutz, A., Nehr, S., Rohrer, F., Tillmann, R., Wegener, R., Holland, F., Hofzumahaus, A., Kiendler-Scharr, A., Wahner, A., and Fuchs, H.: Evaluation of OH and HO<sub>2</sub> concentrations and their budgets during photooxidation of 2-methyl-3-butene-2-ol (MBO) in the atmospheric simulation chamber SAPHIR, Atmos. Chem. Phys., 18, 11409–11422, <a href="https://doi.org/10.5194/acp-18-11409-2018" target="_blank">https://doi.org/10.5194/acp-18-11409-2018</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib29"><label>29</label><mixed-citation>
      
O'Meara, S. P., Xu, S., Topping, D., Alfarra, M. R., Capes, G., Lowe, D., Shao, Y., and McFiggans, G.: PyCHAM (v2.1.1): a Python box model for simulating aerosol chambers, Geosci. Model Dev., 14, 675–702, <a href="https://doi.org/10.5194/gmd-14-675-2021" target="_blank">https://doi.org/10.5194/gmd-14-675-2021</a>, 2021.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib30"><label>30</label><mixed-citation>
      
Sander, R., Baumgaertner, A., Gromov, S., Harder, H., Jöckel, P., Kerkweg, A., Kubistin, D., Regelin, E., Riede, H., Sandu, A., Taraborrelli, D., Tost, H., and Xie, Z.-Q.: The atmospheric chemistry box model CAABA/MECCA-3.0, Geosci. Model Dev., 4, 373–380, <a href="https://doi.org/10.5194/gmd-4-373-2011" target="_blank">https://doi.org/10.5194/gmd-4-373-2011</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib31"><label>31</label><mixed-citation>
      
Sander, R., Baumgaertner, A., Cabrera-Perez, D., Frank, F., Gromov, S., Grooß, J.-U., Harder, H., Huijnen, V., Jöckel, P., Karydis, V. A., Niemeyer, K. E., Pozzer, A., Riede, H., Schultz, M. G., Taraborrelli, D., and Tauer, S.: The community atmospheric chemistry box model CAABA/MECCA-4.0, Geosci. Model Dev., 12, 1365–1385, <a href="https://doi.org/10.5194/gmd-12-1365-2019" target="_blank">https://doi.org/10.5194/gmd-12-1365-2019</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib32"><label>32</label><mixed-citation>
      
Sandu, A., Verwer, J. G., Blom, J. G., Spee, E. J., Carmichael, G. R., and
Potra, F. A.: Benchmarking stiff ode solvers for atmospheric chemistry problems II: Rosenbrock solvers, Atmos. Environ., 31, 3459–3472, 1997a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib33"><label>33</label><mixed-citation>
      
Sandu, A., Verwer, J. G., Loon, M. V., Carmichael, G. R., Potra, F. A.,
Dabdub, D., and Seinfeld, J. H.: Benchmarking stiff ode solvers for
atmospheric chemistry problems-I. implicit vs explicit, Atmos. Environ., 31,
3151–3166, 1997b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib34"><label>34</label><mixed-citation>
      
Shen, L., Jacob, D. J., Santillana, M., Bates, K., Zhuang, J., and Chen, W.: A machine-learning-guided adaptive algorithm to reduce the computational cost of integrating kinetics in global atmospheric chemistry models: application to GEOS-Chem versions 12.0.0 and 12.9.1, Geosci. Model Dev., 15, 1677–1687, <a href="https://doi.org/10.5194/gmd-15-1677-2022" target="_blank">https://doi.org/10.5194/gmd-15-1677-2022</a>, 2022.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib35"><label>35</label><mixed-citation>
      
Sommariva, R., Cox, S., Martin, C., Borońska, K., Young, J., Jimack, P. K., Pilling, M. J., Matthaios, V. N., Nelson, B. S., Newland, M. J., Panagi, M., Bloss, W. J., Monks, P. S., and Rickard, A. R.: AtChem (version 1), an open-source box model for the Master Chemical Mechanism, Geosci. Model Dev., 13, 169–183, <a href="https://doi.org/10.5194/gmd-13-169-2020" target="_blank">https://doi.org/10.5194/gmd-13-169-2020</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib36"><label>36</label><mixed-citation>
      
Verwer, J. G., Blom, J. G., Loon, M. V., and Spee, E. J.: A comparison of
stiff ODE solvers for atmospheric chemistry problems, Atmos. Environ., 30,
49–58, 1996.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib37"><label>37</label><mixed-citation>
      
Wang, W., Xiao, Y., Han, S., Zhang, Y., Gong, D., Wang, H., and Wang, B.: A
vehicle-mounted dual-smog chamber: Characterization and its preliminary
application to evolutionary simulation of photochemical processes in a
quasi-realistic atmosphere, J. Environ. Sci., 132, 98–108, <a href="https://doi.org/10.1016/j.jes.2022.07.034" target="_blank">https://doi.org/10.1016/j.jes.2022.07.034</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib38"><label>38</label><mixed-citation>
      
Wang, Y., Wang, H., Guo, H., Lyu, X., Cheng, H., Ling, Z., Louie, P. K. K., Simpson, I. J., Meinardi, S., and Blake, D. R.: Long-term O<sub>3</sub>–precursor relationships in Hong Kong: field observation and model simulation, Atmos. Chem. Phys., 17, 10919–10935, <a href="https://doi.org/10.5194/acp-17-10919-2017" target="_blank">https://doi.org/10.5194/acp-17-10919-2017</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib39"><label>39</label><mixed-citation>
      
Wang, Y., Guo, H., Zou, S., Lyu, X., Ling, Z., Cheng, H., and Zeren, Y.:
Surface O<sub>3</sub> photochemistry over the South China Sea: Application of a
near-explicit chemical mechanism box model, Environ. Pollut., 234, 155–166, <a href="https://doi.org/10.1016/j.envpol.2017.11.001" target="_blank">https://doi.org/10.1016/j.envpol.2017.11.001</a>, 2018.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib40"><label>40</label><mixed-citation>
      
Wang, Y., Guo, H., Lyu, X., Zhang, L., Zeren, Y., Zou, S., and Ling, Z.:
Photochemical evolution of continental air masses and their influence on
ozone formation over the South China Sea, Sci. Total Environ., 673, 424–434, <a href="https://doi.org/10.1016/j.scitotenv.2019.04.075" target="_blank">https://doi.org/10.1016/j.scitotenv.2019.04.075</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib41"><label>41</label><mixed-citation>
      
Wang, Y., Liu, T., Gong, D., Wang, H., Guo, H., Liao, M., Deng, S., Cai, H.,
and Wang, B.: Anthropogenic Pollutants Induce Changes in Peroxyacetyl
Nitrate Formation Intensity and Pathways in a Mountainous Background
Atmosphere in Southern China, Environ. Sci. Technol., 57, 6253–6262, <a href="https://doi.org/10.1021/acs.est.2c02845" target="_blank">https://doi.org/10.1021/acs.est.2c02845</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib42"><label>42</label><mixed-citation>
      
Wolfe, G. M., Marvin, M. R., Roberts, S. J., Travis, K. R., and Liao, J.: The Framework for 0-D Atmospheric Modeling (F0AM) v3.1, Geosci. Model Dev., 9, 3309–3319, <a href="https://doi.org/10.5194/gmd-9-3309-2016" target="_blank">https://doi.org/10.5194/gmd-9-3309-2016</a>, 2016.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib43"><label>43</label><mixed-citation>
      
Yang, Y., Shao, M., Keßel, S., Li, Y., Lu, K., Lu, S., Williams, J., Zhang, Y., Zeng, L., Nölscher, A. C., Wu, Y., Wang, X., and Zheng, J.: How the OH reactivity affects the ozone production efficiency: case studies in Beijing and Heshan, China, Atmos. Chem. Phys., 17, 7127–7142, <a href="https://doi.org/10.5194/acp-17-7127-2017" target="_blank">https://doi.org/10.5194/acp-17-7127-2017</a>, 2017.


    </mixed-citation></ref-html>
<ref-html id="bib1.bib44"><label>44</label><mixed-citation>
      
Yarwood, G.: Development, Evaluation and Testing of Version 6 of the Carbon
Bond Chemical Mechanism (CB6), Texas Commission on Environmental Quality, <a href="https://www.tceq.texas.gov/airquality/airmod/project/pj_report_pm.html" target="_blank"/> (last access: 21 October 2023), 2010.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib45"><label>45</label><mixed-citation>
      
Ying, Q. and Li, J.: Implementation and initial application of the
near-explicit Master Chemical Mechanism in the 3D Community Multiscale Air
Quality (CMAQ) model, Atmos. Environ., 45, 3244–3256, <a href="https://doi.org/10.1016/j.atmosenv.2011.03.043" target="_blank">https://doi.org/10.1016/j.atmosenv.2011.03.043</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib46"><label>46</label><mixed-citation>
      
Young, T. R. and Boris, J. P.: A numerical technique for solving stiff ordinary differential equations associated with the chemical kinetics of reactive-flow problems, J. Phys. Chem., 81, 2424–2427, <a href="https://doi.org/10.1021/j100540a018" target="_blank">https://doi.org/10.1021/j100540a018</a>, 1977.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib47"><label>47</label><mixed-citation>
      
Zhang, L., Brook, J. R., and Vet, R.: A revised parameterization for gaseous dry deposition in air-quality models, Atmos. Chem. Phys., 3, 2067–2082, <a href="https://doi.org/10.5194/acp-3-2067-2003" target="_blank">https://doi.org/10.5194/acp-3-2067-2003</a>, 2003.

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