<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE article PUBLIC "-//NLM//DTD Journal Publishing with OASIS Tables v3.0 20080202//EN" "https://jats.nlm.nih.gov/nlm-dtd/publishing/3.0/journalpub-oasis3.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:oasis="http://docs.oasis-open.org/ns/oasis-exchange/table" xml:lang="en" dtd-version="3.0" article-type="research-article">
  <front>
    <journal-meta><journal-id journal-id-type="publisher">GMD</journal-id><journal-title-group>
    <journal-title>Geoscientific Model Development</journal-title>
    <abbrev-journal-title abbrev-type="publisher">GMD</abbrev-journal-title><abbrev-journal-title abbrev-type="nlm-ta">Geosci. Model Dev.</abbrev-journal-title>
  </journal-title-group><issn pub-type="epub">1991-9603</issn><publisher>
    <publisher-name>Copernicus Publications</publisher-name>
    <publisher-loc>Göttingen, Germany</publisher-loc>
  </publisher></journal-meta>
    <article-meta>
      <article-id pub-id-type="doi">10.5194/gmd-19-10433-2026</article-id><title-group><article-title>Slope-Constrained Orography (SCO v1.0) for explicit discrete-slope control in terrain preprocessing: a case study with WRF-ARW (v4.6.1)</article-title><alt-title>Slope-Constrained Orography for WRF</alt-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author" corresp="no" rid="aff1">
          <name><surname>Ma</surname><given-names>Yulong</given-names></name>
          
        </contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff2 aff3">
          <name><surname>Jiang</surname><given-names>Xingwen</given-names></name>
          <email>jiangxingwen@cma.gov.cn</email>
        <ext-link>https://orcid.org/0000-0003-1727-9266</ext-link></contrib>
        <contrib contrib-type="author" corresp="yes" rid="aff1">
          <name><surname>Mu</surname><given-names>Lin</given-names></name>
          <email>mulin@szu.edu.cn</email>
        </contrib>
        <contrib contrib-type="author" corresp="no" rid="aff2 aff3">
          <name><surname>Heng</surname><given-names>Zhiwei</given-names></name>
          
        </contrib>
        <aff id="aff1"><label>1</label><institution>College of Life Sciences and Oceanography, Shenzhen University, Shenzhen, 518055, China</institution>
        </aff>
        <aff id="aff2"><label>2</label><institution>Heavy Rain and Drought-Flood Disasters in Plateau and Basin Key Laboratory of Sichuan Province, Institute of Tibetan Plateau Meteorology, China Meteorological Administration, Chengdu, 610072, China</institution>
        </aff>
        <aff id="aff3"><label>3</label><institution>Institute of Tibetan Plateau Meteorology, Chinese Academy of Meteorological Sciences, Beijing, 100081, China</institution>
        </aff>
      </contrib-group>
      <author-notes><corresp id="corr1">Xingwen Jiang (jiangxingwen@cma.gov.cn) and Lin Mu (mulin@szu.edu.cn)</corresp></author-notes><pub-date><day>4</day><month>November</month><year>2026</year></pub-date>
      
      <volume>19</volume>
      <issue>21</issue>
      <fpage>10433</fpage><lpage>10445</lpage>
      <history>
        <date date-type="received"><day>11</day><month>April</month><year>2026</year></date>
           <date date-type="rev-request"><day>15</day><month>July</month><year>2026</year></date>
           <date date-type="rev-recd"><day>6</day><month>October</month><year>2026</year></date>
           <date date-type="accepted"><day>12</day><month>October</month><year>2026</year></date>
      </history>
      <permissions>
        <copyright-statement>Copyright: © 2026 Yulong Ma et al.</copyright-statement>
        <copyright-year>2026</copyright-year>
      <license license-type="open-access"><license-p>This work is licensed under the Creative Commons Attribution 4.0 International License. To view a copy of this licence, visit <ext-link ext-link-type="uri" xlink:href="https://creativecommons.org/licenses/by/4.0/">https://creativecommons.org/licenses/by/4.0/</ext-link></license-p></license></permissions><self-uri xlink:href="https://gmd.copernicus.org/articles/19/10433/2026/gmd-19-10433-2026.html">This article is available from https://gmd.copernicus.org/articles/19/10433/2026/gmd-19-10433-2026.html</self-uri><self-uri xlink:href="https://gmd.copernicus.org/articles/19/10433/2026/gmd-19-10433-2026.pdf">The full text article is available as a PDF file from https://gmd.copernicus.org/articles/19/10433/2026/gmd-19-10433-2026.pdf</self-uri>
      <abstract><title>Abstract</title>

      <p id="d2e128">Kilometre-scale Weather Research and Forecasting (WRF) simulations over terrain with steep slopes often require strong smoothing to prevent numerical instability, but conventional domain-wide filters alter terrain at every grid point, regardless of whether local slopes require reduction. Slope-Constrained Orography (SCO) is an offline terrain preprocessing method that prescribes a target slope angle <inline-formula><mml:math id="M1" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> and adjusts only those grid points whose eight-neighbour elevation differences exceed the implied bound, leaving the remaining terrain unchanged. By prescribing the slope constraint directly, SCO provides a geometrically interpretable primary user-facing parameter for terrain construction and stability testing. In a 1 km WRF case over the highly complex terrain of the southeastern Tibetan Plateau, the least-modified stable SCO member among those tested modifies 14 % of points with a mean elevation change of 8.2 m, compared with 100 % modification and 108.1 m for the corresponding WRF Preprocessing System (WPS) member. The successful SCO configuration produces lower near-surface wind and temperature errors in this case.</p>
  </abstract>
    
<funding-group>
<award-group id="gs1">
<funding-source>National Natural Science Foundation of China</funding-source>
<award-id>42375160</award-id>
</award-group>
<award-group id="gs2">
<funding-source>National Key Research and Development Program of China</funding-source>
<award-id>2023YFC3007501</award-id>
</award-group>
<award-group id="gs3">
<funding-source>Basic and Applied Basic Research Foundation of Guangdong Province</funding-source>
<award-id>2022A1515110841</award-id>
</award-group>
<award-group id="gs4">
<funding-source>Shenzhen Municipal Fundamental Research Program</funding-source>
<award-id>JCYJ20220530164400001</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="d2e147">Complex terrain exerts strong control on boundary-layer flow, thermally driven circulations, and orographic precipitation <xref ref-type="bibr" rid="bib1.bibx17 bib1.bibx1 bib1.bibx2" id="paren.1"/>, motivating the use of kilometre-scale grids to resolve ridge–valley structure. In terrain-following coordinate models such as the Weather Research and Forecasting model <xref ref-type="bibr" rid="bib1.bibx20" id="paren.2"><named-content content-type="pre">WRF;</named-content></xref>, the large elevation differences that arise on kilometre-scale grids over complex terrain amplify horizontal pressure-gradient errors and can trigger numerical instability within a few time steps <xref ref-type="bibr" rid="bib1.bibx13 bib1.bibx8 bib1.bibx24" id="paren.3"/>. Terrain preprocessing is therefore necessary, but the smoothing required to prevent instability routinely modifies terrain well beyond the grid points that actually govern stability.</p>
      <p id="d2e161">In the standard WRF Preprocessing System (WPS) workflow, <monospace>geogrid</monospace> applies a single pass of <monospace>smth-desmth_special</monospace> smoothing to the terrain field across the entire domain. Over steep terrain at kilometre-scale grid spacing, one pass is often insufficient, and users must increase the pass count, an integer parameter with no direct geometric correspondence to the resulting slope field. The maximum discrete slope that emerges depends on the raw terrain, the grid spacing, and the number of passes, and can only be diagnosed after the smoothing is complete. Because the filter updates every grid point at each iteration, terrain changes propagate far from the locations that control stability. Successive iterations yield diminishing reductions in peak slope, and stability can only be verified by completing a trial integration.</p>
      <p id="d2e170">Modifying the vertical coordinate offers an alternative path to accommodating steep slopes <xref ref-type="bibr" rid="bib1.bibx16 bib1.bibx12" id="paren.4"/>, but localised terrain adjustments have also been explored within conventional preprocessing. <xref ref-type="bibr" rid="bib1.bibx19" id="text.5"/> blended lightly and heavily smoothed terrain across steep-slope regions; <xref ref-type="bibr" rid="bib1.bibx18" id="text.6"/> applied a local Gaussian filter only to grid points exceeding a slope threshold; and <xref ref-type="bibr" rid="bib1.bibx9" id="text.7"/> posed terrain adjustment as a constrained optimisation problem with prescribed slope bounds. Slope-Constrained Orography (SCO) follows a similar motivation: it prescribes a target slope angle <inline-formula><mml:math id="M2" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> as the primary user-facing parameter and adjusts only those grid points whose eight-neighbour elevation differences exceed the implied bound, leaving the rest of the terrain unchanged.</p>
      <p id="d2e192">This study introduces SCO v1.0 and evaluates it against standard WPS smoothing in 1 km Advanced Research WRF (WRF-ARW) v4.6.1 simulations over the highly complex terrain of the southeastern Tibetan Plateau. Three questions guide the evaluation: (1) can a prescribed-slope approach produce stable 48 h integrations with substantially less terrain modification than domain-wide smoothing, (2) how do the two methods differ in slope-field structure near the stability boundary, and (3) how do near-surface forecast errors compare between their successful configurations in this case?</p>
</sec>
<sec id="Ch1.S2">
  <label>2</label><title>Method and WRF implementation</title>
<sec id="Ch1.S2.SS1">
  <label>2.1</label><title>Overview</title>
      <p id="d2e210">SCO adjusts terrain elevation on a structured grid using working bounds on eight-neighbour elevation differences derived from a prescribed slope angle <inline-formula><mml:math id="M3" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula>. Water bodies and lateral boundaries remain fixed throughout. The adjustment proceeds through weighted pairwise projection. Whenever the elevation difference across a neighbour pair exceeds a local bound, the solver redistributes the excess between the two endpoints in proportion to their mobility weights. The bounds include a conservative geometric scaling, explained in Sect. 2.2. Inner stopping conditions and a separate outer acceptance test determine when iteration ends (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>). The implementation assumes uniform grid spacing (<inline-formula><mml:math id="M4" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>y</mml:mi></mml:mrow></mml:math></inline-formula>).</p>
      <p id="d2e238">Because SCO operates on the standard <monospace>geo_em</monospace> files produced by <monospace>geogrid</monospace>, it integrates easily into the existing WPS pipeline between <monospace>geogrid</monospace> and <monospace>metgrid</monospace> with no modifications to the WRF source code. Here, <monospace>geogrid</monospace> interpolates static geographical data, including terrain, to the model grids, while <monospace>metgrid</monospace> interpolates meteorological fields horizontally to the same grids. The Python implementation reads and writes <monospace>geo_em.d0X.nc</monospace> directly and is used here for both offline diagnostics and terrain construction. Source code, documentation, and a worked example are archived on Zenodo (see Code and data availability).</p>
</sec>
<sec id="Ch1.S2.SS2">
  <label>2.2</label><title>Discrete slope metric and constraint derivation</title>
      <p id="d2e271">The target angle <inline-formula><mml:math id="M5" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> is the user-prescribed slope parameter. Let <inline-formula><mml:math id="M6" display="inline"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> denote terrain height on a grid with spacing <inline-formula><mml:math id="M7" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula>. The local eight-neighbour discrete slope angle is

            <disp-formula id="Ch1.E1" content-type="numbered"><label>1</label><mml:math id="M8" display="block"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:munder><mml:mo movablelimits="false">max⁡</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>)</mml:mo><mml:mo>∈</mml:mo><mml:msub><mml:mi mathvariant="script">N</mml:mi><mml:mn mathvariant="normal">8</mml:mn></mml:msub><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:munder><mml:mi>arctan⁡</mml:mi><mml:mfenced close=")" open="("><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>|</mml:mo></mml:mrow><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mo>(</mml:mo><mml:mi>m</mml:mi><mml:mo>,</mml:mo><mml:mi>n</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M9" display="inline"><mml:mrow><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> for cardinal neighbours and <inline-formula><mml:math id="M10" display="inline"><mml:mrow><mml:mi>d</mml:mi><mml:mo>=</mml:mo><mml:msqrt><mml:mn mathvariant="normal">2</mml:mn></mml:msqrt><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> for diagonal neighbours. The eight neighbours comprise the four cardinal points <inline-formula><mml:math id="M11" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M12" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and the four diagonal points <inline-formula><mml:math id="M13" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>±</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>. Taking the maximum detects an exceedance in any sampled direction; averaging could conceal a single steep pair. The maximum over the active interior is denoted <inline-formula><mml:math id="M14" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. This interior consists of land points with mobility weight <inline-formula><mml:math id="M15" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula>, excluding the frozen rim and the outer part of the boundary taper.</p>
      <p id="d2e543">Cardinal and diagonal bounds of <inline-formula><mml:math id="M16" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mi>tan⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M17" display="inline"><mml:mrow><mml:msqrt><mml:mn mathvariant="normal">2</mml:mn></mml:msqrt><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mi>tan⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula> each correspond to <inline-formula><mml:math id="M18" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> in their sampled direction. SCO multiplies both by <inline-formula><mml:math id="M19" display="inline"><mml:mrow><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">π</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, giving the initial cardinal bound

            <disp-formula id="Ch1.E2" content-type="numbered"><label>2</label><mml:math id="M20" display="block"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi>h</mml:mi><mml:mo>max⁡</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>=</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi>tan⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">π</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          The diagonal bound is <inline-formula><mml:math id="M21" display="inline"><mml:mrow><mml:msqrt><mml:mn mathvariant="normal">2</mml:mn></mml:msqrt><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi>h</mml:mi><mml:mo>max⁡</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>. This common factor is a conservative geometric scaling for a locally planar surface: the gradient direction is within <inline-formula><mml:math id="M22" display="inline"><mml:mrow><mml:mi mathvariant="italic">π</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:math></inline-formula> of a sampled direction, so satisfaction of all scaled bounds implies <inline-formula><mml:math id="M23" display="inline"><mml:mrow><mml:mo>|</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>h</mml:mi><mml:mo>|</mml:mo><mml:mo>≤</mml:mo><mml:mi>tan⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula> for that plane (Appendix <xref ref-type="sec" rid="App1.Ch1.S1.SS1"/>). The scaling does not remove the directional anisotropy of the eight-neighbour stencil.</p>
      <p id="d2e709">The angle corresponding to the initial working bounds is

            <disp-formula id="Ch1.E3" content-type="numbered"><label>3</label><mml:math id="M24" display="block"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mi>arctan⁡</mml:mi><mml:mspace width="-0.125em" linebreak="nobreak"/><mml:mo mathsize="1.1em">[</mml:mo><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">π</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>)</mml:mo><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mi>tan⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mo mathsize="1.1em">]</mml:mo><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          and the linear approximation <inline-formula><mml:math id="M25" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub><mml:mo>≈</mml:mo><mml:mn mathvariant="normal">0.93</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula> holds to within <inline-formula><mml:math id="M26" display="inline"><mml:mn mathvariant="normal">0.1</mml:mn></mml:math></inline-formula>° over <inline-formula><mml:math id="M27" display="inline"><mml:mn mathvariant="normal">18</mml:mn></mml:math></inline-formula>–<inline-formula><mml:math id="M28" display="inline"><mml:mn mathvariant="normal">26</mml:mn></mml:math></inline-formula>°. Local tightening can reduce the working bounds further. A field that fully satisfies the initial bounds has <inline-formula><mml:math id="M29" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub><mml:mo>≤</mml:mo><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, apart from numerical tolerance, but acceptance at the nominal angle <inline-formula><mml:math id="M30" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> does not establish convergence to those bounds. The idealised example in Fig. <xref ref-type="fig" rid="F1"/> illustrates the basic contrast: SCO modifies only the cones whose slopes violate the working bounds, whereas WPS smoothing alters all four. RAW denotes the unsmoothed reference terrain.</p>

      <fig id="F1" specific-use="star"><label>Figure 1</label><caption><p id="d2e827">Idealised terrain fields used to contrast SCO and WPS smoothing. Four Gaussian cones (<inline-formula><mml:math id="M31" display="inline"><mml:mrow><mml:mi mathvariant="italic">σ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">2.0</mml:mn></mml:mrow></mml:math></inline-formula> km) with peak slopes of 43, 24, 18, and 9° are placed on a flat plain at <inline-formula><mml:math id="M32" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> km. The angle of the initial working bounds corresponding to <inline-formula><mml:math id="M33" display="inline"><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">22</mml:mn></mml:mrow></mml:math></inline-formula>° is <inline-formula><mml:math id="M34" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20.5</mml:mn></mml:mrow></mml:math></inline-formula>°. <bold>(a)</bold> RAW terrain; the dashed line marks the cross-section in <bold>(d)</bold>. <bold>(b)</bold> Absolute elevation change <inline-formula><mml:math id="M35" display="inline"><mml:mrow><mml:mo>|</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>h</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula> after SCO with <inline-formula><mml:math id="M36" display="inline"><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">22</mml:mn></mml:mrow></mml:math></inline-formula>°. <bold>(c)</bold> Absolute elevation change <inline-formula><mml:math id="M37" display="inline"><mml:mrow><mml:mo>|</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>h</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula> after 120 passes of WPS <monospace>smth-desmth_special</monospace>. <bold>(d)</bold> Cross-section through the cone centres.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/10433/2026/gmd-19-10433-2026-f01.png"/>

        </fig>

</sec>
<sec id="Ch1.S2.SS3">
  <label>2.3</label><title>Iterative projection solver</title>
      <p id="d2e957">Each grid point carries a mobility weight <inline-formula><mml:math id="M38" display="inline"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>∈</mml:mo><mml:mo>[</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>,</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula> that controls how freely the solver may adjust its elevation. Water points receive <inline-formula><mml:math id="M39" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> and are never modified. The outermost <inline-formula><mml:math id="M40" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula> rows and columns are likewise frozen at <inline-formula><mml:math id="M41" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>; across the next <inline-formula><mml:math id="M42" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula> rows and columns inward, a cosine taper raises <inline-formula><mml:math id="M43" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> smoothly from 0 to 1. All remaining interior land points carry <inline-formula><mml:math id="M44" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>. The fixed settings used here are <inline-formula><mml:math id="M45" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M46" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e1070">Grid points with <inline-formula><mml:math id="M47" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula> define the <italic>active interior</italic>. This threshold coincides with the midpoint of the cosine taper and marks the region over which <inline-formula><mml:math id="M48" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> is evaluated and the outer acceptance test is applied. Boundary points (<inline-formula><mml:math id="M49" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>≤</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula>) may retain residual slope violations, but do not enter the outer acceptance test or local tightening. The inner monitor includes all neighbour pairs with <inline-formula><mml:math id="M50" display="inline"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mi>q</mml:mi></mml:msub><mml:mo>&gt;</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>, including pairs adjoining frozen points.</p>
      <p id="d2e1144">The solver sweeps four classes of neighbour pairs in sequence (horizontal, vertical, main diagonal, anti-diagonal) using a red–black decomposition for vectorised execution. For a neighbour pair <inline-formula><mml:math id="M51" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, the working bound is <inline-formula><mml:math id="M52" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mo>/</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>)</mml:mo><mml:mo>min⁡</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mi>q</mml:mi></mml:msub><mml:mo>)</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi>h</mml:mi><mml:mo>max⁡</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula>, where <inline-formula><mml:math id="M53" display="inline"><mml:mrow><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> for cardinal pairs and <inline-formula><mml:math id="M54" display="inline"><mml:mrow><mml:msqrt><mml:mn mathvariant="normal">2</mml:mn></mml:msqrt><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> for diagonal pairs. The local tightening factor <inline-formula><mml:math id="M55" display="inline"><mml:mi>f</mml:mi></mml:math></inline-formula> is initially 1. It changes the bound, whereas the mobility weight <inline-formula><mml:math id="M56" display="inline"><mml:mi>w</mml:mi></mml:math></inline-formula> determines how the correction is shared. When the height difference <inline-formula><mml:math id="M57" display="inline"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>=</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>q</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> exceeds <inline-formula><mml:math id="M58" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> in magnitude and the pair is movable, the excess

            <disp-formula id="Ch1.E4" content-type="numbered"><label>4</label><mml:math id="M59" display="block"><mml:mrow><mml:mi>e</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>-</mml:mo><mml:mi mathvariant="normal">sgn</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>)</mml:mo><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></disp-formula>

          is redistributed according to the endpoint mobilities:

            <disp-formula id="Ch1.E5" content-type="numbered"><label>5</label><mml:math id="M60" display="block"><mml:mrow><mml:msub><mml:mi>h</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>←</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:mi>e</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi>p</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mi>q</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.25em"/><mml:mspace width="0.25em" linebreak="nobreak"/><mml:msub><mml:mi>h</mml:mi><mml:mi>q</mml:mi></mml:msub><mml:mo>←</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>q</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:mi>e</mml:mi><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi>q</mml:mi></mml:msub></mml:mrow><mml:mrow><mml:msub><mml:mi>w</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>w</mml:mi><mml:mi>q</mml:mi></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          When both endpoints share the same mobility the pair mean is conserved. When they differ, as in the transition zone, the more mobile endpoint absorbs the larger share and the pair mean shifts toward the less mobile point. Frozen points (<inline-formula><mml:math id="M61" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula>) never move.</p>
      <p id="d2e1447">An outer loop progressively tightens the local bound at each active interior point through the factor <inline-formula><mml:math id="M62" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>:

            <disp-formula id="Ch1.E6" content-type="numbered"><label>6</label><mml:math id="M63" display="block"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi>h</mml:mi><mml:mo>max⁡</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula></p>
      <p id="d2e1517">For sweep <inline-formula><mml:math id="M64" display="inline"><mml:mi>s</mml:mi></mml:math></inline-formula>, the monitored quantity <inline-formula><mml:math id="M65" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the largest positive pairwise exceedance <inline-formula><mml:math id="M66" display="inline"><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>(</mml:mo><mml:mo>|</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>q</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:mo>-</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mo>,</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> encountered over movable pairs during the sweep. The inner stopping conditions are <inline-formula><mml:math id="M67" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn></mml:mrow></mml:math></inline-formula> m, stagnation, or the limit of 500 sweeps. Stagnation means <inline-formula><mml:math id="M68" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">0.999</mml:mn><mml:msub><mml:mi>E</mml:mi><mml:mrow><mml:mi>s</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> for three consecutive comparisons. Persistent exceedances beside the frozen boundary can trigger this exit before the active interior has fully converged.</p>
      <p id="d2e1621">After each inner solve, the outer acceptance test checks <inline-formula><mml:math id="M69" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub><mml:mo>≤</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">0.01</mml:mn></mml:mrow></mml:math></inline-formula>°. If it is not met, the factors at active interior points with <inline-formula><mml:math id="M70" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>&gt;</mml:mo><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula> are tightened as

            <disp-formula id="Ch1.E7" content-type="numbered"><label>7</label><mml:math id="M71" display="block"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>←</mml:mo><mml:mo movablelimits="false">max⁡</mml:mo><mml:mspace linebreak="nobreak" width="-0.125em"/><mml:mfenced close=")" open="("><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mspace width="0.125em" linebreak="nobreak"/><mml:mi mathvariant="italic">β</mml:mi><mml:mspace linebreak="nobreak" width="0.125em"/><mml:mstyle displaystyle="true"><mml:mfrac style="display"><mml:mi mathvariant="italic">θ</mml:mi><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:mfrac></mml:mstyle><mml:mo>,</mml:mo><mml:mspace width="0.25em" linebreak="nobreak"/><mml:msub><mml:mi>f</mml:mi><mml:mo>min⁡</mml:mo></mml:msub></mml:mrow></mml:mfenced><mml:mo>,</mml:mo></mml:mrow></mml:math></disp-formula>

          where <inline-formula><mml:math id="M72" display="inline"><mml:mrow><mml:mi mathvariant="italic">β</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.97</mml:mn></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M73" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mo>min⁡</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.30</mml:mn></mml:mrow></mml:math></inline-formula> are fixed. The next inner solve uses the updated bounds. The outer loop ends on acceptance or after 10 rounds. The full pseudocode and parameter values are given in Appendix <xref ref-type="sec" rid="App1.Ch1.S1.SS2"/>. All offline diagnostics and figures in this study use <monospace>max_outer = 10</monospace>, <monospace>max_sweeps = 500</monospace>, <monospace>inner_tol = 0.1 m</monospace>, and <monospace>outer_tol_deg = 0.01°</monospace>. These are also the module defaults in the released code, which users may adjust for other domains.</p>
</sec>
<sec id="Ch1.S2.SS4">
  <label>2.4</label><title>Offline diagnostics</title>
      <p id="d2e1780">The offline diagnostics quantify achieved slopes, the magnitude and extent of terrain modification, and retained small-scale terrain structure. The near-maximum count is the number of active interior points whose <inline-formula><mml:math id="M74" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> falls within <inline-formula><mml:math id="M75" display="inline"><mml:mrow><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.2</mml:mn></mml:mrow></mml:math></inline-formula>°  below the member's own <inline-formula><mml:math id="M76" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>. It describes concentration in the slope distribution, not geographic clustering.</p>
      <p id="d2e1827">Terrain fidelity is characterised by the mean absolute elevation change, <inline-formula><mml:math id="M77" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">MAE</mml:mi><mml:mi>h</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mo>〈</mml:mo><mml:mo>|</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">new</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">raw</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:mo>〉</mml:mo></mml:mrow></mml:math></inline-formula>, over interior land points. The modified-area fraction is the proportion of those points where <inline-formula><mml:math id="M78" display="inline"><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">new</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi mathvariant="normal">raw</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn></mml:mrow></mml:math></inline-formula> m. <inline-formula><mml:math id="M79" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">MAE</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> measures the typical magnitude of elevation change. The modified-area fraction measures how widely those changes spread. Retained small-scale terrain structure is quantified by the root-mean-square (RMS) over interior land points of the unnormalised five-point second difference

            <disp-formula id="Ch1.E8" content-type="numbered"><label>8</label><mml:math id="M80" display="block"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>+</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>-</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:mn mathvariant="normal">4</mml:mn><mml:mspace width="0.125em" linebreak="nobreak"/><mml:msub><mml:mi>h</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></disp-formula>

          (in metres). On the uniform grid, this difference equals <inline-formula><mml:math id="M81" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msup><mml:mi>x</mml:mi><mml:mn mathvariant="normal">2</mml:mn></mml:msup></mml:mrow></mml:math></inline-formula> times the discrete Laplacian. Because it responds to second-order terrain structure, it distinguishes terrain fields with similar <inline-formula><mml:math id="M82" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> but different small-scale content. Ridge-to-valley relief retention along cross-sections is defined as the ratio of the peak-to-valley elevation difference in the processed field to that in RAW.</p>
</sec>
</sec>
<sec id="Ch1.S3">
  <label>3</label><title>Experimental design</title>
<sec id="Ch1.S3.SS1">
  <label>3.1</label><title>Study region and model configuration</title>
      <p id="d2e2042">The test region is the southeastern Tibetan Plateau (Fig. <xref ref-type="fig" rid="F2"/>), where raw discrete slope angles on a 1 km grid exceed 40° (Table <xref ref-type="table" rid="T1"/>). Two one-way-nested WRF-ARW v4.6.1 domains are used. The outer domain (D01) covers the eastern Tibetan Plateau margin and the Sichuan Basin on a <inline-formula><mml:math id="M83" display="inline"><mml:mrow><mml:mn mathvariant="normal">360</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">360</mml:mn></mml:mrow></mml:math></inline-formula> grid at 3 km spacing; the inner domain (D02) spans the steep plateau–basin transition on a <inline-formula><mml:math id="M84" display="inline"><mml:mrow><mml:mn mathvariant="normal">420</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">420</mml:mn></mml:mrow></mml:math></inline-formula> grid at 1 km spacing. Both domains use 54 vertical levels with a model top at 50 hPa and the hybrid terrain-following coordinate. D01 supplies the lateral boundary conditions for D02, with no feedback from D02 to D01. D01 terrain is fixed after one WPS <monospace>smth-desmth_special</monospace> pass; all terrain-treatment differences are confined to D02. Time steps were reduced for the WPS configurations as needed for stability (Fig. <xref ref-type="fig" rid="F3"/>). With the parent-to-nest time-step ratio fixed at 3, these reductions also change the parent-domain integration.</p>

<table-wrap id="T1" specific-use="star"><label>Table 1</label><caption><p id="d2e2082">Terrain members with offline diagnostics and stability outcomes. The control parameter is the WPS pass count <inline-formula><mml:math id="M85" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> or the SCO target angle <inline-formula><mml:math id="M86" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula>. For SCO members, <inline-formula><mml:math id="M87" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is the angle corresponding to the initial working bounds (Sect. 2.2). “48 h” gives the reported integration outcome under the stated 48 h stability criterion and the member-specific configuration (Fig. <xref ref-type="fig" rid="F3"/>). W1<inline-formula><mml:math id="M88" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>SCO24 <inline-formula><mml:math id="M89" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">MAE</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is measured relative to its WPS01-smoothed input rather than to RAW, and its modified-area fraction is not directly comparable to the RAW-referenced values of the other members; neither quantity enters the cross-method comparison.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="8">
     <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="center"/>
     <oasis:colspec colnum="5" colname="col5" align="center"/>
     <oasis:colspec colnum="6" colname="col6" align="left"/>
     <oasis:colspec colnum="7" colname="col7" align="left"/>
     <oasis:colspec colnum="8" colname="col8" align="left"/>
     <oasis:thead>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1">Member</oasis:entry>
         <oasis:entry colname="col2">Path</oasis:entry>
         <oasis:entry colname="col3">Control</oasis:entry>
         <oasis:entry colname="col4"><inline-formula><mml:math id="M95" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (°)</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M96" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> (°)</oasis:entry>
         <oasis:entry colname="col6"><inline-formula><mml:math id="M97" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">MAE</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> (m)</oasis:entry>
         <oasis:entry colname="col7">Mod. (%)</oasis:entry>
         <oasis:entry colname="col8">48 h</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">RAW</oasis:entry>
         <oasis:entry colname="col2">–</oasis:entry>
         <oasis:entry colname="col3">–</oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5">47.73</oasis:entry>
         <oasis:entry colname="col6">0</oasis:entry>
         <oasis:entry colname="col7">0</oasis:entry>
         <oasis:entry colname="col8">–</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">WPS01</oasis:entry>
         <oasis:entry colname="col2">WPS</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M98" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5">41.49</oasis:entry>
         <oasis:entry colname="col6">30.4</oasis:entry>
         <oasis:entry colname="col7"><inline-formula><mml:math id="M99" display="inline"><mml:mo>&gt;</mml:mo></mml:math></inline-formula> 99.9</oasis:entry>
         <oasis:entry colname="col8">fail</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">WPS60</oasis:entry>
         <oasis:entry colname="col2">WPS</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M100" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">60</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5">26.24</oasis:entry>
         <oasis:entry colname="col6">96.4</oasis:entry>
         <oasis:entry colname="col7"><inline-formula><mml:math id="M101" display="inline"><mml:mo>&gt;</mml:mo></mml:math></inline-formula> 99.9</oasis:entry>
         <oasis:entry colname="col8">fail</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">WPS100</oasis:entry>
         <oasis:entry colname="col2">WPS</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M102" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">100</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5">24.44</oasis:entry>
         <oasis:entry colname="col6">105<sup>a</sup></oasis:entry>
         <oasis:entry colname="col7"><inline-formula><mml:math id="M104" display="inline"><mml:mo>&gt;</mml:mo></mml:math></inline-formula> 99.9</oasis:entry>
         <oasis:entry colname="col8">fail</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">WPS120</oasis:entry>
         <oasis:entry colname="col2">WPS</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M105" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">120</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5">24.13</oasis:entry>
         <oasis:entry colname="col6">108.1</oasis:entry>
         <oasis:entry colname="col7">100.0</oasis:entry>
         <oasis:entry colname="col8">pass</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">WPS150</oasis:entry>
         <oasis:entry colname="col2">WPS</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M106" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">150</mml:mn></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col4">–</oasis:entry>
         <oasis:entry colname="col5">23.76</oasis:entry>
         <oasis:entry colname="col6">111.9</oasis:entry>
         <oasis:entry colname="col7">100.0</oasis:entry>
         <oasis:entry colname="col8">pass</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SCO18</oasis:entry>
         <oasis:entry colname="col2">SCO</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M107" display="inline"><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">18</mml:mn></mml:mrow></mml:math></inline-formula>°</oasis:entry>
         <oasis:entry colname="col4">16.7</oasis:entry>
         <oasis:entry colname="col5">17.24</oasis:entry>
         <oasis:entry colname="col6">17.9</oasis:entry>
         <oasis:entry colname="col7">26.0</oasis:entry>
         <oasis:entry colname="col8">pass</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SCO20</oasis:entry>
         <oasis:entry colname="col2">SCO</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M108" display="inline"><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">20</mml:mn></mml:mrow></mml:math></inline-formula>°</oasis:entry>
         <oasis:entry colname="col4">18.6</oasis:entry>
         <oasis:entry colname="col5">19.31</oasis:entry>
         <oasis:entry colname="col6">12.3</oasis:entry>
         <oasis:entry colname="col7">19.4</oasis:entry>
         <oasis:entry colname="col8">pass</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SCO22</oasis:entry>
         <oasis:entry colname="col2">SCO</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M109" display="inline"><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">22</mml:mn></mml:mrow></mml:math></inline-formula>°</oasis:entry>
         <oasis:entry colname="col4">20.5</oasis:entry>
         <oasis:entry colname="col5">21.12</oasis:entry>
         <oasis:entry colname="col6">8.2</oasis:entry>
         <oasis:entry colname="col7">14.0</oasis:entry>
         <oasis:entry colname="col8">pass</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SCO24</oasis:entry>
         <oasis:entry colname="col2">SCO</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M110" display="inline"><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">24</mml:mn></mml:mrow></mml:math></inline-formula>°</oasis:entry>
         <oasis:entry colname="col4">22.4</oasis:entry>
         <oasis:entry colname="col5">22.36</oasis:entry>
         <oasis:entry colname="col6">5.3</oasis:entry>
         <oasis:entry colname="col7">9.9</oasis:entry>
         <oasis:entry colname="col8">fail</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SCO26</oasis:entry>
         <oasis:entry colname="col2">SCO</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M111" display="inline"><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">26</mml:mn></mml:mrow></mml:math></inline-formula>°</oasis:entry>
         <oasis:entry colname="col4">24.3</oasis:entry>
         <oasis:entry colname="col5">24.26</oasis:entry>
         <oasis:entry colname="col6">3.3</oasis:entry>
         <oasis:entry colname="col7">6.5</oasis:entry>
         <oasis:entry colname="col8">fail</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">W1<inline-formula><mml:math id="M112" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>SCO24</oasis:entry>
         <oasis:entry colname="col2">Combo</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M113" display="inline"><mml:mrow><mml:mi>N</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn><mml:mo>;</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">24</mml:mn></mml:mrow></mml:math></inline-formula>°</oasis:entry>
         <oasis:entry colname="col4">22.4</oasis:entry>
         <oasis:entry colname="col5">22.36</oasis:entry>
         <oasis:entry colname="col6">2.2 <sup>b</sup></oasis:entry>
         <oasis:entry colname="col7">n/a<sup>b</sup></oasis:entry>
         <oasis:entry colname="col8">fail</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table><table-wrap-foot><p id="d2e2131"><sup>a</sup> WPS100 <inline-formula><mml:math id="M91" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">MAE</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is rounded to the nearest integer. <sup>b</sup> W1<inline-formula><mml:math id="M93" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>SCO24 <inline-formula><mml:math id="M94" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">MAE</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is measured relative to its WPS01-smoothed input, not relative to RAW; excluded from the cross-method comparison.  n/a: not applicable.</p></table-wrap-foot></table-wrap>

      <fig id="F2" specific-use="star"><label>Figure 2</label><caption><p id="d2e2784">Model domains and observation network. <bold>(a)</bold> D01 terrain elevation (3 km grid spacing) with the D02 boundary marked. <bold>(b)</bold> D02 terrain elevation (1 km grid spacing) with the 927 surface stations used for near-surface verification.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/10433/2026/gmd-19-10433-2026-f02.png"/>

        </fig>

      <fig id="F3" specific-use="star"><label>Figure 3</label><caption><p id="d2e2802">Terrain-member pathways in (<inline-formula><mml:math id="M116" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">MAE</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M117" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>) space. Filled symbols indicate stable members and open symbols indicate failed members. Shaded bands span the adjacent passing and failing candidates; the WPS interval also includes a change in time step. For W1<inline-formula><mml:math id="M118" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>SCO24, <inline-formula><mml:math id="M119" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">MAE</mml:mi><mml:mi>h</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> is referenced to its WPS01 input rather than RAW. Reported D01/D02 time steps: SCO and W1<inline-formula><mml:math id="M120" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>SCO24, 18/6 s; WPS100, 15/5 s; WPS120 and WPS150, 12/4 s. WPS120 failed at 18/6 s and passed at 12/4 s.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/10433/2026/gmd-19-10433-2026-f03.png"/>

        </fig>

      <p id="d2e2863">All simulations are initialised at 00:00 UTC (Coordinated Universal Time) 18 July 2025 from the fifth-generation reanalysis (ERA5) of the European Centre for Medium-Range Weather Forecasts <xref ref-type="bibr" rid="bib1.bibx3" id="paren.8"/> and integrated for 48 h. Static terrain for the 1 km inner domain is built from the 30 m Advanced Spaceborne Thermal Emission and Reflection Radiometer (ASTER) Global Digital Elevation Model <xref ref-type="bibr" rid="bib1.bibx21" id="paren.9"><named-content content-type="pre">GDEM;</named-content></xref> by area averaging onto the model grid. The physics configuration is identical across all experiments: Thompson microphysics <xref ref-type="bibr" rid="bib1.bibx22" id="paren.10"/>, Rapid Radiative Transfer Model for general circulation models (RRTMG) radiation <xref ref-type="bibr" rid="bib1.bibx7" id="paren.11"/>, the Yonsei University (YSU) planetary boundary layer scheme <xref ref-type="bibr" rid="bib1.bibx6" id="paren.12"/>, the revised Fifth-Generation Penn State/National Center for Atmospheric Research mesoscale model (MM5) Monin–Obukhov surface layer, Noah land surface model with multiparameterization options (Noah-MP) <xref ref-type="bibr" rid="bib1.bibx15" id="paren.13"/>, and gravity-wave drag on D01 only. No cumulus parameterisation is used on either domain. A reference WRF namelist is provided in the code repository.</p>
</sec>
<sec id="Ch1.S3.SS2">
  <label>3.2</label><title>Terrain members and member selection</title>
      <p id="d2e2895">For the WPS pathway, <monospace>smth-desmth_special</monospace> is applied for <inline-formula><mml:math id="M121" display="inline"><mml:mi>N</mml:mi></mml:math></inline-formula> passes to the aggregated D02 terrain, and the member label gives the pass count. Five members are tested: WPS01, WPS60, WPS100, WPS120, and WPS150. SCO members are generated by applying the slope-constrained adjustment (Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>) directly to the unsmoothed D02 terrain. Five members span <inline-formula><mml:math id="M122" display="inline"><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">18</mml:mn></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M123" display="inline"><mml:mn mathvariant="normal">26</mml:mn></mml:math></inline-formula>° at <inline-formula><mml:math id="M124" display="inline"><mml:mn mathvariant="normal">2</mml:mn></mml:math></inline-formula>° intervals, with the member label giving the target angle. All SCO members share the same solver settings (<inline-formula><mml:math id="M125" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M126" display="inline"><mml:mrow><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M127" display="inline"><mml:mrow><mml:mi mathvariant="italic">β</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.97</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M128" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mo>min⁡</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.30</mml:mn></mml:mrow></mml:math></inline-formula>); only <inline-formula><mml:math id="M129" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> varies. RAW is retained as an offline reference. A control experiment, W1<inline-formula><mml:math id="M130" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>SCO24, applies one WPS pass before SCO at <inline-formula><mml:math id="M131" display="inline"><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">24</mml:mn></mml:mrow></mml:math></inline-formula>° to test whether light pre-smoothing changes the stability outcome at fixed <inline-formula><mml:math id="M132" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>.</p>
      <p id="d2e3031">The cross-method comparison pairs the least-modified stable member from each method among the discrete candidates tested under their reported configurations and the same 48 h stability criterion. These selections are neither exact stability limits nor globally optimal terrain solutions. Members are not matched by slope or terrain cost, since neither method offers a natural counterpart at fixed values of these quantities. One additional stable member from each method enters the near-surface evaluation to gauge within-method sensitivity.</p>
</sec>
<sec id="Ch1.S3.SS3">
  <label>3.3</label><title>Observations and verification protocol</title>
      <p id="d2e3042">Near-surface verification uses hourly 10 m wind speed and 2 m temperature from 927 China Meteorological Administration (CMA) surface stations within the D02 interior (Fig. <xref ref-type="fig" rid="F2"/>b). The denser local network improves spatial sampling in interior valleys, where terrain effects are expected to be strongest.</p>
      <p id="d2e3047">Stations within 30 grid points of the lateral boundaries are excluded to avoid relaxation-zone contamination, and each retained time series must contain at least 20 % valid observations during the 48 h window. At any given station, the terrain-height difference between members is much smaller than the model-minus-observation elevation offset, so systematic elevation bias largely cancels in the paired comparison. Model fields are bilinearly interpolated to station locations without elevation correction.</p>
      <p id="d2e3050">The final sample contains 44 200 wind pairs and 44 115 temperature pairs. Inter-member root-mean-square error (RMSE) differences are tested with a two-sided paired <inline-formula><mml:math id="M133" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula>-test across stations, each contributing one time-averaged RMSE value. The test does not account for spatial correlation among nearby stations, so the reported <inline-formula><mml:math id="M134" display="inline"><mml:mi>p</mml:mi></mml:math></inline-formula> values should be interpreted as approximate.</p>
</sec>
</sec>
<sec id="Ch1.S4">
  <label>4</label><title>Results</title>
<sec id="Ch1.S4.SS1">
  <label>4.1</label><title>Terrain modification and retained structure</title>
      <p id="d2e3083">Under the common 48 h stability criterion, SCO22 and WPS120 are the least-modified stable members among those tested for the two methods (Table <xref ref-type="table" rid="T1"/>). Their terrain costs differ by an order of magnitude. SCO22 modifies 14.0 % of interior land points with <inline-formula><mml:math id="M135" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">MAE</mml:mi><mml:mi>h</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">8.2</mml:mn></mml:mrow></mml:math></inline-formula> m; WPS120 modifies the entire domain and has <inline-formula><mml:math id="M136" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">MAE</mml:mi><mml:mi>h</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">108.1</mml:mn></mml:mrow></mml:math></inline-formula> m (Fig. <xref ref-type="fig" rid="F3"/>).</p>
      <p id="d2e3120">SCO22 also retains far more small-scale terrain structure. Its RMS of the five-point second difference reaches 279.8 m, nearly six times the 47.9 m of WPS120. Cross-sections confirm the same pattern: SCO22 retains 97 %–99 % of the RAW ridge-to-valley relief along two representative transects, compared with 79 %–86 % for WPS120 (Fig. <xref ref-type="fig" rid="F4"/>).</p>

      <fig id="F4" specific-use="star"><label>Figure 4</label><caption><p id="d2e3127">Terrain modification footprint and retained relief. <bold>(a)</bold> RAW terrain elevation with cross-section locations marked. <bold>(b)</bold> Absolute elevation change <inline-formula><mml:math id="M137" display="inline"><mml:mrow><mml:mo>|</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>h</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula> for WPS120 and <bold>(c)</bold> for SCO22, shown on the same colour scale (0–1000 m). <bold>(d)</bold> West–east cross-section along Line-A (<inline-formula><mml:math id="M138" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">339</mml:mn></mml:mrow></mml:math></inline-formula>) and <bold>(e)</bold> south–north cross-section along Line-B (<inline-formula><mml:math id="M139" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">346</mml:mn></mml:mrow></mml:math></inline-formula>). Annotated percentages denote ridge-to-valley relief retained relative to RAW.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/10433/2026/gmd-19-10433-2026-f04.png"/>

        </fig>

      <p id="d2e3191">All SCO members attain the nominal target <inline-formula><mml:math id="M140" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> over the active interior (Fig. <xref ref-type="fig" rid="F5"/>). The maxima for SCO24 and SCO26 lie close to <inline-formula><mml:math id="M141" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula>, whereas those for SCO18–SCO22 remain above it (Table <xref ref-type="table" rid="T1"/>; Fig. <xref ref-type="fig" rid="F5"/>c). The latter fields pass the outer acceptance test without fully satisfying the tighter internal working bounds, consistent with the stagnation exit described in Sect. <xref ref-type="sec" rid="Ch1.S2.SS3"/>.</p>

      <fig id="F5" specific-use="star"><label>Figure 5</label><caption><p id="d2e3223">Target <inline-formula><mml:math id="M142" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> versus achieved <inline-formula><mml:math id="M143" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> for SCO18–SCO26. <bold>(a)</bold> The solid line marks <inline-formula><mml:math id="M144" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> and the dashed line <inline-formula><mml:math id="M145" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula>; filled triangles indicate stable members and open triangles indicate failed members. <bold>(b)</bold> Total sweep count. <bold>(c)</bold> Angular difference <inline-formula><mml:math id="M146" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> after the final outer round. The positive differences for SCO18–SCO22 distinguish attainment of the nominal target from convergence to the internal working bounds.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/10433/2026/gmd-19-10433-2026-f05.png"/>

        </fig>

</sec>
<sec id="Ch1.S4.SS2">
  <label>4.2</label><title>Diagnostics near the stability boundary</title>
      <p id="d2e3314">The WRF integrations with the unstable members terminated prematurely. Along the WPS pathway, WPS100 (<inline-formula><mml:math id="M147" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">24.44</mml:mn></mml:mrow></mml:math></inline-formula>°) fails while WPS120 (24.13°) completes the full 48 h integration under the reported configurations (Table <xref ref-type="table" rid="T1"/>; Fig. <xref ref-type="fig" rid="F3"/>). Along the SCO pathway, SCO24 (22.36°) fails and SCO22 (21.12°) passes, a sampled passing–failing gap of 1.24°. The selected stable members, SCO22 and WPS120, differ by 3.0° in peak slope.</p>
      <p id="d2e3341">At the domain scale, the slope fields of SCO22, SCO24, WPS100 and WPS120 differ sharply. Of the active interior points in SCO24, 15 359 fall within <inline-formula><mml:math id="M148" display="inline"><mml:mrow><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.2</mml:mn></mml:mrow></mml:math></inline-formula>° below its own <inline-formula><mml:math id="M149" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>; WPS120 has only 4 (Table <xref ref-type="table" rid="T2"/>). The exceedance counts (Fig. <xref ref-type="fig" rid="F6"/>b) illustrate the same contrast: SCO members drop steeply near their diagnosed maxima, whereas the WPS tail decays gradually over several degrees. Because repeated smoothing progressively lowers slopes, few WPS grid points remain near the residual peak. In the slope probability density functions (PDFs; Fig. <xref ref-type="fig" rid="F6"/>a), the contrast takes a different form: the WPS distribution falls off gradually in the upper tail, with most grid points well below the peak, while SCO24 has a concentrated population near its working bound.</p>

      <fig id="F6" specific-use="star"><label>Figure 6</label><caption><p id="d2e3380">Slope distributions for members near the stability boundary. <bold>(a)</bold> Probability density functions for WPS100, WPS120, SCO22, SCO24, and W1<inline-formula><mml:math id="M150" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>SCO24. <bold>(b)</bold> Exceedance counts: number of active interior grid points with discrete slope exceeding <inline-formula><mml:math id="M151" display="inline"><mml:mi>S</mml:mi></mml:math></inline-formula>, shown on a logarithmic vertical axis. The sharp drop-off in the SCO members reflects the slope-constrained adjustment; the gradual tail in the WPS members reflects the progressive nature of domain-wide smoothing.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/10433/2026/gmd-19-10433-2026-f06.png"/>

        </fig>

<table-wrap id="T2" specific-use="star"><label>Table 2</label><caption><p id="d2e3413">Diagnostics for selected members near the sampled passing–failing intervals. Near-maximum count is the number of active interior points within <inline-formula><mml:math id="M152" display="inline"><mml:mrow><mml:mi mathvariant="italic">ε</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.2</mml:mn></mml:mrow></mml:math></inline-formula>° below each member's own <inline-formula><mml:math id="M153" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>; it describes the slope distribution, not geographic clustering. Second-difference RMS is the RMS of the unnormalised five-point second difference in Eq. (<xref ref-type="disp-formula" rid="Ch1.E8"/>). Spectral retention is defined relative to RAW at the indicated wavelengths. Outcomes refer to the configurations in Fig. <xref ref-type="fig" rid="F3"/>.</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="7">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="right"/>
     <oasis:colspec colnum="6" colname="col6" align="right"/>
     <oasis:colspec colnum="7" colname="col7" align="left"/>
     <oasis:thead>
       <oasis:row>
         <oasis:entry colname="col1">Member</oasis:entry>
         <oasis:entry colname="col2"><inline-formula><mml:math id="M154" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></oasis:entry>
         <oasis:entry colname="col3">Near-maximum</oasis:entry>
         <oasis:entry colname="col4">Second-difference</oasis:entry>
         <oasis:entry colname="col5">2 km ret.</oasis:entry>
         <oasis:entry colname="col6">10 km ret.</oasis:entry>
         <oasis:entry colname="col7">48 h</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">(°)</oasis:entry>
         <oasis:entry colname="col3">count</oasis:entry>
         <oasis:entry colname="col4">RMS (m)</oasis:entry>
         <oasis:entry colname="col5">(%)</oasis:entry>
         <oasis:entry colname="col6">(%)</oasis:entry>
         <oasis:entry colname="col7"/>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">WPS100</oasis:entry>
         <oasis:entry colname="col2">24.44</oasis:entry>
         <oasis:entry colname="col3">2</oasis:entry>
         <oasis:entry colname="col4">49.9</oasis:entry>
         <oasis:entry colname="col5">27</oasis:entry>
         <oasis:entry colname="col6">30</oasis:entry>
         <oasis:entry colname="col7">fail</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">WPS120</oasis:entry>
         <oasis:entry colname="col2">24.13</oasis:entry>
         <oasis:entry colname="col3">4</oasis:entry>
         <oasis:entry colname="col4">47.9</oasis:entry>
         <oasis:entry colname="col5">27</oasis:entry>
         <oasis:entry colname="col6">25</oasis:entry>
         <oasis:entry colname="col7">pass</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SCO22</oasis:entry>
         <oasis:entry colname="col2">21.12</oasis:entry>
         <oasis:entry colname="col3">6</oasis:entry>
         <oasis:entry colname="col4">279.8</oasis:entry>
         <oasis:entry colname="col5">88</oasis:entry>
         <oasis:entry colname="col6">91</oasis:entry>
         <oasis:entry colname="col7">pass</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SCO24</oasis:entry>
         <oasis:entry colname="col2">22.36</oasis:entry>
         <oasis:entry colname="col3">15 359</oasis:entry>
         <oasis:entry colname="col4">289.6</oasis:entry>
         <oasis:entry colname="col5">91</oasis:entry>
         <oasis:entry colname="col6">94</oasis:entry>
         <oasis:entry colname="col7">fail</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">W1<inline-formula><mml:math id="M155" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>SCO24</oasis:entry>
         <oasis:entry colname="col2">22.36</oasis:entry>
         <oasis:entry colname="col3">7 681</oasis:entry>
         <oasis:entry colname="col4">186.7</oasis:entry>
         <oasis:entry colname="col5">30</oasis:entry>
         <oasis:entry colname="col6">92</oasis:entry>
         <oasis:entry colname="col7">fail</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e3668">Figure <xref ref-type="fig" rid="F7"/> compares the local terrain around the reported failure site. Within this <inline-formula><mml:math id="M156" display="inline"><mml:mrow><mml:mn mathvariant="normal">41</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">41</mml:mn></mml:mrow></mml:math></inline-formula> neighbourhood, SCO24 retains small-scale ridge–valley structure and has 604 grid points above 22°. By contrast, WPS100 presents a narrow band of steep slopes against a smooth background, with only 23 grid points above 22°.</p>

      <fig id="F7" specific-use="star"><label>Figure 7</label><caption><p id="d2e3687">Local slope and elevation fields near the shared crash location (<inline-formula><mml:math id="M157" display="inline"><mml:mrow><mml:mn mathvariant="normal">41</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">41</mml:mn></mml:mrow></mml:math></inline-formula> neighbourhood centred on <inline-formula><mml:math id="M158" display="inline"><mml:mrow><mml:mi>i</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">50</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M159" display="inline"><mml:mrow><mml:mi>j</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">291</mml:mn></mml:mrow></mml:math></inline-formula>, 1-based). <bold>(a, b)</bold> Discrete slope <inline-formula><mml:math id="M160" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> for WPS100 and SCO24. <bold>(c, d)</bold> Terrain elevation for the same members. The cross marks the failure site.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/10433/2026/gmd-19-10433-2026-f07.png"/>

        </fig>

      <p id="d2e3755">W1<inline-formula><mml:math id="M161" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>SCO24 tests whether removing small-scale terrain structure at fixed <inline-formula><mml:math id="M162" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> can produce a stable integration. One WPS pass applied before SCO at <inline-formula><mml:math id="M163" display="inline"><mml:mrow><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">24</mml:mn></mml:mrow></mml:math></inline-formula>° lowers the second-difference RMS from 289.6 to 186.7 m and approximately halves the near-maximum count (from 15 359 to 7681), while holding <inline-formula><mml:math id="M164" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> at 22.36° (Table <xref ref-type="table" rid="T2"/>). Row-mean spectra confirm that about 70 % of the power near 2 km wavelength is removed, while the 10 km band remains largely intact (Fig. <xref ref-type="fig" rid="F8"/>). SCO24 and W1<inline-formula><mml:math id="M165" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>SCO24 both fail. The tested pre-smoothing was therefore insufficient to restore stability under these settings.</p>

      <fig id="F8"><label>Figure 8</label><caption><p id="d2e3823">Row-mean terrain power normalised by RAW at each wavenumber for RAW, WPS120, SCO22, SCO24 and W1<inline-formula><mml:math id="M166" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>SCO24. Wavelength is shown on a logarithmic horizontal axis. Vertical dotted lines mark 2 and 10 km.</p></caption>
          <graphic xlink:href="https://gmd.copernicus.org/articles/19/10433/2026/gmd-19-10433-2026-f08.png"/>

        </fig>

      <p id="d2e3840">Figure <xref ref-type="fig" rid="F8"/> shows SCO22 and SCO24 because they bracket the sampled SCO passing–failing interval; it also compares WPS120 and W1<inline-formula><mml:math id="M167" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>SCO24. SCO22 and SCO24 retain most of the RAW power near 2 and 10 km, and SCO24 retains more than SCO22; WPS120 removes most of the power in those bands (Table <xref ref-type="table" rid="T2"/>). SCO is a nonlinear local adjustment, so its spectral response depends on terrain amplitude and structure, grid spacing and <inline-formula><mml:math id="M168" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> rather than on a fixed transfer function. In the tested sequence, lower <inline-formula><mml:math id="M169" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> increases terrain modification (Table <xref ref-type="table" rid="T1"/>). The slope distributions and second-order diagnostics show that the methods produce different terrain structures beyond the maximum slope. Those properties may influence numerical behaviour, but the present experiments do not isolate their effects.</p>
</sec>
<sec id="Ch1.S4.SS3">
  <label>4.3</label><title>Near-surface verification</title>
      <p id="d2e3879">Four stable members (WPS120, WPS150, SCO20, and SCO22) are evaluated against the 927-station network over the full 48 h period (Table <xref ref-type="table" rid="T3"/>). Comparing the two least-modified stable members, SCO22 produces lower errors for both variables: wind RMSE is lower by about 0.15 m s<sup>−1</sup> with a weaker positive bias, and 2 m temperature RMSE is lower by about 0.16 K (Table <xref ref-type="table" rid="T3"/>). The error differences between these successful configurations cannot be attributed to D02 terrain alone. The 2 m temperature bias reverses sign between the two members (<inline-formula><mml:math id="M171" display="inline"><mml:mo lspace="0mm">±</mml:mo></mml:math></inline-formula>0.17 K) but at this magnitude it is too small to diagnose a systematic difference.</p>

<table-wrap id="T3" specific-use="star"><label>Table 3</label><caption><p id="d2e3908">Forty-eight-hour near-surface verification. RMSE denotes root-mean-square error. SCO20 and SCO22 show no detectable difference in wind RMSE (<inline-formula><mml:math id="M172" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.97</mml:mn></mml:mrow></mml:math></inline-formula>) or in 2 m temperature RMSE (<inline-formula><mml:math id="M173" display="inline"><mml:mrow><mml:mi>p</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.32</mml:mn></mml:mrow></mml:math></inline-formula>) under the approximate two-sided paired <inline-formula><mml:math id="M174" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula>-test across stations (Sect. 3.3).</p></caption><oasis:table frame="topbot"><oasis:tgroup cols="5">
     <oasis:colspec colnum="1" colname="col1" align="left"/>
     <oasis:colspec colnum="2" colname="col2" align="right"/>
     <oasis:colspec colnum="3" colname="col3" align="right"/>
     <oasis:colspec colnum="4" colname="col4" align="right"/>
     <oasis:colspec colnum="5" colname="col5" align="right"/>
     <oasis:thead>
       <oasis:row>
         <oasis:entry colname="col1">Member</oasis:entry>
         <oasis:entry colname="col2">Wind RMSE</oasis:entry>
         <oasis:entry colname="col3">Wind bias</oasis:entry>
         <oasis:entry colname="col4">2 m temp. RMSE</oasis:entry>
         <oasis:entry colname="col5">2 m temp. bias</oasis:entry>
       </oasis:row>
       <oasis:row rowsep="1">
         <oasis:entry colname="col1"/>
         <oasis:entry colname="col2">(m s<sup>−1</sup>)</oasis:entry>
         <oasis:entry colname="col3">(m s<sup>−1</sup>)</oasis:entry>
         <oasis:entry colname="col4">(K)</oasis:entry>
         <oasis:entry colname="col5">(K)</oasis:entry>
       </oasis:row>
     </oasis:thead>
     <oasis:tbody>
       <oasis:row>
         <oasis:entry colname="col1">WPS120</oasis:entry>
         <oasis:entry colname="col2">1.790</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M177" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>0.854</oasis:entry>
         <oasis:entry colname="col4">2.147</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M178" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.168</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">WPS150</oasis:entry>
         <oasis:entry colname="col2">1.779</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M179" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>0.844</oasis:entry>
         <oasis:entry colname="col4">2.194</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M180" display="inline"><mml:mo>-</mml:mo></mml:math></inline-formula>0.184</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SCO20</oasis:entry>
         <oasis:entry colname="col2">1.644</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M181" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>0.631</oasis:entry>
         <oasis:entry colname="col4">1.984</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M182" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>0.164</oasis:entry>
       </oasis:row>
       <oasis:row>
         <oasis:entry colname="col1">SCO22</oasis:entry>
         <oasis:entry colname="col2">1.642</oasis:entry>
         <oasis:entry colname="col3"><inline-formula><mml:math id="M183" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>0.620</oasis:entry>
         <oasis:entry colname="col4">1.984</oasis:entry>
         <oasis:entry colname="col5"><inline-formula><mml:math id="M184" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>0.165</oasis:entry>
       </oasis:row>
     </oasis:tbody>
   </oasis:tgroup></oasis:table></table-wrap>

      <p id="d2e4143">Within-method differences are much smaller. SCO20 and SCO22 show no detectable difference in wind and temperature RMSE under the approximate stationwise paired test (Sect. 3.3). The step from WPS120 to WPS150 changes scores only modestly. Because the comparison rests on a single 48 h case, these numbers are specific to the present domain and period.</p>
</sec>
</sec>
<sec id="Ch1.S5">
  <label>5</label><title>Discussion</title>
      <p id="d2e4156">SCO meets the stability criterion on this domain with far less terrain alteration than WPS. WPS120 has a higher <inline-formula><mml:math id="M185" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> than SCO24, and the two members' slope fields differ markedly in how many grid points lie near their respective maxima. The W1<inline-formula><mml:math id="M186" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>SCO24 control shows that removing much of the small-scale structure while holding <inline-formula><mml:math id="M187" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> fixed does not recover stability under the tested settings. The diagnostics examined here may not capture all terrain differences relevant to stability.</p>
      <p id="d2e4198">The diminishing returns of repeated <monospace>smth-desmth_special</monospace> passes compound the terrain-cost asymmetry between the two methods (Fig. <xref ref-type="fig" rid="F3"/>). Small-scale terrain is removed much faster than the residual peak slope declines. Among the evaluated stable SCO members, SCO20 and SCO22 yield nearly identical forecast scores. A filter-based approach requires the user to choose a pass count, blending factor, or filter width and then inspect the resulting slope field. SCO prescribes <inline-formula><mml:math id="M188" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> first and uses the same variable to generate candidates, diagnose them offline, test for stability, and select the final member. On the <inline-formula><mml:math id="M189" display="inline"><mml:mrow><mml:mn mathvariant="normal">420</mml:mn><mml:mo>×</mml:mo><mml:mn mathvariant="normal">420</mml:mn></mml:mrow></mml:math></inline-formula> D02 grid used here, each SCO member is generated in under 10 s on a single central processing unit (CPU) core, so the entire five-member <inline-formula><mml:math id="M190" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> sweep completes in under a minute.</p>
      <p id="d2e4232">A practical workflow begins by diagnosing the raw terrain and generating a coarse sequence of <inline-formula><mml:math id="M191" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> values. Each field is checked offline for <inline-formula><mml:math id="M192" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula>, residuals relative to its internal working bounds, and the magnitude and extent of terrain modification. Stability integrations with a fixed model configuration and time step then bracket the sampled passing–failing interval. The interval can be refined if needed, and the least-modified passing member is selected from those tested. The selection must be reassessed when the model configuration changes.</p>
      <p id="d2e4258">The focus of this study is not on forecast improvement through terrain modification, but on preserving terrain fidelity as far as possible while maintaining numerical stability. Greater retention of ridge–valley relief and terrain spectral content (Figs. <xref ref-type="fig" rid="F4"/> and <xref ref-type="fig" rid="F8"/>) preserves more of the lower-boundary structure available to force local atmospheric flows. The hourly station evaluation quantifies bulk errors, whereas assessing the realism of resolved flow variability requires complementary diagnostics, as illustrated by <xref ref-type="bibr" rid="bib1.bibx19" id="text.14"/>. Such variability was not evaluated here.</p>
</sec>
<sec id="Ch1.S6" sec-type="conclusions">
  <label>6</label><title>Conclusions</title>
      <p id="d2e4276">SCO prescribes the target slope angle <inline-formula><mml:math id="M193" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> as its primary user-facing parameter and applies local eight-neighbour terrain adjustments between <monospace>geogrid</monospace> and <monospace>metgrid</monospace>. The parameter provides a geometrically interpretable way to generate terrain candidates and organise stability tests. On the highly complex terrain of the southeastern Tibetan Plateau at 1 km grid spacing, the least-modified stable SCO member among those tested (SCO22) completes a 48 h integration with <inline-formula><mml:math id="M194" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">MAE</mml:mi><mml:mi>h</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">8.2</mml:mn></mml:mrow></mml:math></inline-formula> m and 86 % of interior land points unmodified, compared with <inline-formula><mml:math id="M195" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="normal">MAE</mml:mi><mml:mi>h</mml:mi></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">108.1</mml:mn></mml:mrow></mml:math></inline-formula> m and 100 % modification for the least-modified stable WPS member (WPS120). SCO22 retains substantially more small-scale terrain structure than WPS120, while the near-boundary candidates show distinct upper-tail slope distributions. The sampled passing range is specific to the tested case and model configuration.</p>
      <p id="d2e4322">For the successful configurations, SCO22 also produces lower near-surface wind and temperature errors in this 48 h case. Whether this advantage holds across other domains and seasons remains to be tested. With each candidate terrain generated in seconds, SCO provides an efficient way to explore the balance between terrain retention and numerical stability. Curvature constraints and packaging SCO as an optional WPS component are possible extensions. The current implementation assumes uniform grid spacing, and extending the projection geometry to variable-resolution or unstructured meshes is a natural next step toward broader applicability.</p>
</sec>

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

<app id="App1.Ch1.S1">
  <label>Appendix A</label><title>Geometric scaling and algorithm summary</title>
<sec id="App1.Ch1.S1.SS1">
  <label>A1</label><title>Conservative scaling for locally planar terrain</title>
      <p id="d2e4343">For a locally planar surface with gradient <inline-formula><mml:math id="M196" display="inline"><mml:mrow><mml:mi mathvariant="bold-italic">g</mml:mi><mml:mo>=</mml:mo><mml:mi mathvariant="normal">∇</mml:mi><mml:mi>h</mml:mi></mml:mrow></mml:math></inline-formula>, the neighbour-pair ratio in a unit direction <inline-formula><mml:math id="M197" display="inline"><mml:mi mathvariant="bold-italic">u</mml:mi></mml:math></inline-formula> is <inline-formula><mml:math id="M198" display="inline"><mml:mrow><mml:mo>|</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>q</mml:mi></mml:msub><mml:mo>-</mml:mo><mml:msub><mml:mi>h</mml:mi><mml:mi>p</mml:mi></mml:msub><mml:mo>|</mml:mo><mml:mo>/</mml:mo><mml:msub><mml:mi>d</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mo>=</mml:mo><mml:mo>|</mml:mo><mml:mi mathvariant="bold-italic">g</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>|</mml:mo></mml:mrow></mml:math></inline-formula>. Let <inline-formula><mml:math id="M199" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="script">U</mml:mi><mml:mn mathvariant="normal">8</mml:mn></mml:msub></mml:mrow></mml:math></inline-formula> contain the unit vectors along the eight sampled directions. They are separated by <inline-formula><mml:math id="M200" display="inline"><mml:mrow><mml:mi mathvariant="italic">π</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">4</mml:mn></mml:mrow></mml:math></inline-formula>, so one lies within <inline-formula><mml:math id="M201" display="inline"><mml:mrow><mml:mi mathvariant="italic">π</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn></mml:mrow></mml:math></inline-formula> of the gradient direction. Hence

            <disp-formula id="App1.Ch1.S1.E9" content-type="numbered"><label>A1</label><mml:math id="M202" display="block"><mml:mrow><mml:munder><mml:mo movablelimits="false">max⁡</mml:mo><mml:mrow><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>∈</mml:mo><mml:msub><mml:mi mathvariant="script">U</mml:mi><mml:mn mathvariant="normal">8</mml:mn></mml:msub></mml:mrow></mml:munder><mml:mo>|</mml:mo><mml:mi mathvariant="bold-italic">g</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="bold-italic">u</mml:mi><mml:mo>|</mml:mo><mml:mo>≥</mml:mo><mml:mo>|</mml:mo><mml:mi mathvariant="bold-italic">g</mml:mi><mml:mo>|</mml:mo><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">π</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>)</mml:mo><mml:mo>.</mml:mo></mml:mrow></mml:math></disp-formula>

          If all sampled ratios are bounded by <inline-formula><mml:math id="M203" display="inline"><mml:mrow><mml:mi>tan⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">π</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>, then <inline-formula><mml:math id="M204" display="inline"><mml:mrow><mml:mo>|</mml:mo><mml:mi mathvariant="bold-italic">g</mml:mi><mml:mo>|</mml:mo><mml:mo>≤</mml:mo><mml:mi>tan⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula>. The corresponding elevation-difference bounds are <inline-formula><mml:math id="M205" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mi>tan⁡</mml:mi><mml:mi mathvariant="italic">θ</mml:mi><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">π</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> for cardinal pairs and <inline-formula><mml:math id="M206" display="inline"><mml:msqrt><mml:mn mathvariant="normal">2</mml:mn></mml:msqrt></mml:math></inline-formula> times this value for diagonal pairs. The common scaling tightens both sets of bounds conservatively for any orientation of a plane; it does not remove the stencil's directional anisotropy. The angle of the initial pairwise bounds is <inline-formula><mml:math id="M207" display="inline"><mml:mrow><mml:msub><mml:mi mathvariant="italic">θ</mml:mi><mml:mi mathvariant="normal">eff</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> in Eq. (<xref ref-type="disp-formula" rid="Ch1.E3"/>).</p>
</sec>
<sec id="App1.Ch1.S1.SS2">
  <label>A2</label><title>Pseudocode</title>
      <p id="d2e4596">The pseudocode below summarises the algorithm with the parameter values used for the terrain members analysed in this paper.</p><boxed-text content-type="algorithm" position="float" id="App1.Ch1.S1.Prog1" specific-use="star"><label>Algorithm A1</label><caption><p id="d2e4600">SCO v1.0.</p></caption><disp-quote content-type="algorithmic" specific-use="numbering{0}"><list>

    <list-item>

      <p id="d2e4607" specific-use="STATE"><bold>Input:</bold> <inline-formula><mml:math id="M208" display="inline"><mml:mrow><mml:mi>h</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> terrain elevation (m); <inline-formula><mml:math id="M209" display="inline"><mml:mrow><mml:mi mathvariant="normal">landmask</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>; <inline-formula><mml:math id="M210" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi></mml:mrow></mml:math></inline-formula> grid spacing (m); <inline-formula><mml:math id="M211" display="inline"><mml:mi mathvariant="italic">θ</mml:mi></mml:math></inline-formula> target slope angle (°); <inline-formula><mml:math id="M212" display="inline"><mml:mrow><mml:mi>r</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">3</mml:mn><mml:mo>,</mml:mo><mml:mi>t</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">5</mml:mn></mml:mrow></mml:math></inline-formula> frozen-rim and transition widths; <inline-formula><mml:math id="M213" display="inline"><mml:mrow><mml:mi mathvariant="italic">β</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.97</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M214" display="inline"><mml:mrow><mml:msub><mml:mi>f</mml:mi><mml:mo>min⁡</mml:mo></mml:msub><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.30</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M215" display="inline"><mml:mrow><mml:mi mathvariant="normal">max</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi mathvariant="normal">outer</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">10</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M216" display="inline"><mml:mrow><mml:mi mathvariant="normal">max</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi mathvariant="normal">sweeps</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">500</mml:mn></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M217" display="inline"><mml:mrow><mml:mi mathvariant="normal">inner</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi mathvariant="normal">tol</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.1</mml:mn></mml:mrow></mml:math></inline-formula> m, <inline-formula><mml:math id="M218" display="inline"><mml:mrow><mml:mi mathvariant="normal">outer</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi mathvariant="normal">tol</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi mathvariant="normal">deg</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0.01</mml:mn></mml:mrow></mml:math></inline-formula>°</p>
            </list-item>

    <list-item>

      <p id="d2e4796" specific-use="STATE"><bold>Output:</bold> <inline-formula><mml:math id="M219" display="inline"><mml:mrow><mml:mi>h</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> adjusted terrain elevation; nominal-target acceptance flag</p>
            </list-item>

    <list-item>

            <p specific-use="STATE"/></list-item>

    <list-item>

      <p id="d2e4831" specific-use="STATE">1. Compute base cardinal bound: <inline-formula><mml:math id="M220" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi>h</mml:mi><mml:mo>max⁡</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup><mml:mo>←</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:mi>x</mml:mi><mml:mo>⋅</mml:mo><mml:mi>tan⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:mi>cos⁡</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">π</mml:mi><mml:mo>/</mml:mo><mml:mn mathvariant="normal">8</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></p>
            </list-item>

    <list-item>

      <p id="d2e4887" specific-use="STATE">2. Build mobility-weight field <inline-formula><mml:math id="M221" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>(</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>x</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:msub><mml:mi>n</mml:mi><mml:mi>y</mml:mi></mml:msub><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>:</p>
            </list-item>

    <list-item>

      <p id="d2e4918" specific-use="STATE"><inline-formula><mml:math id="M222" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> where <inline-formula><mml:math id="M223" display="inline"><mml:mrow><mml:mi mathvariant="normal">landmask</mml:mi><mml:mo>&lt;</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn></mml:mrow></mml:math></inline-formula>  [water]</p>
            </list-item>

    <list-item>

      <p id="d2e4950" specific-use="STATE"><inline-formula><mml:math id="M224" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula> in outermost <inline-formula><mml:math id="M225" display="inline"><mml:mi>r</mml:mi></mml:math></inline-formula> rows and columns  [frozen rim]</p>
            </list-item>

    <list-item>

      <p id="d2e4977" specific-use="STATE"><inline-formula><mml:math id="M226" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mtext>cosine taper</mml:mtext></mml:mrow></mml:math></inline-formula> across next <inline-formula><mml:math id="M227" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula> rows and columns  [transition zone]</p>
            </list-item>

    <list-item>

      <p id="d2e5004" specific-use="STATE"><inline-formula><mml:math id="M228" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> elsewhere  [interior land]</p>
            </list-item>

    <list-item>

      <p id="d2e5024" specific-use="STATE">3. Initialise tightening factors: <inline-formula><mml:math id="M229" display="inline"><mml:mrow><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>←</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> for all <inline-formula><mml:math id="M230" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></p>
            </list-item>

    <list-item>

      <p id="d2e5067" specific-use="STATE">4. Define active interior mask: <inline-formula><mml:math id="M231" display="inline"><mml:mrow><mml:mi mathvariant="normal">interior</mml:mi><mml:mo>←</mml:mo><mml:mo>(</mml:mo><mml:mi>w</mml:mi><mml:mo>&gt;</mml:mo><mml:mn mathvariant="normal">0.5</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula>; set acceptance flag to false</p>
            </list-item>

    <list-item>

      <p id="d2e5094" specific-use="STATE">5. <bold>for</bold> round <inline-formula><mml:math id="M232" display="inline"><mml:mrow><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M233" display="inline"><mml:mrow><mml:mi mathvariant="normal">max</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi mathvariant="normal">outer</mml:mi></mml:mrow></mml:math></inline-formula> <bold>do</bold></p>
            </list-item>

    <list-item>

      <p id="d2e5127" specific-use="STATE">5a. Update local bounds: <inline-formula><mml:math id="M234" display="inline"><mml:mrow><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>h</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>←</mml:mo><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msubsup><mml:mi>h</mml:mi><mml:mo>max⁡</mml:mo><mml:mrow><mml:mo>(</mml:mo><mml:mn mathvariant="normal">0</mml:mn><mml:mo>)</mml:mo></mml:mrow></mml:msubsup></mml:mrow></mml:math></inline-formula></p>
            </list-item>

    <list-item>

      <p id="d2e5187" specific-use="STATE">Initialise <inline-formula><mml:math id="M235" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">prev</mml:mi></mml:msub><mml:mo>←</mml:mo><mml:mi mathvariant="normal">∞</mml:mi></mml:mrow></mml:math></inline-formula>, <inline-formula><mml:math id="M236" display="inline"><mml:mrow><mml:mi>c</mml:mi><mml:mo>←</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula></p>
            </list-item>

    <list-item>

      <p id="d2e5220" specific-use="STATE">5b. <bold>for</bold> sweep <inline-formula><mml:math id="M237" display="inline"><mml:mrow><mml:mi>s</mml:mi><mml:mo>=</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula> to <inline-formula><mml:math id="M238" display="inline"><mml:mrow><mml:mi mathvariant="normal">max</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi mathvariant="normal">sweeps</mml:mi></mml:mrow></mml:math></inline-formula> <bold>do</bold></p>
            </list-item>

    <list-item>

      <p id="d2e5256" specific-use="STATE">Set <inline-formula><mml:math id="M239" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>←</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula></p>
            </list-item>

    <list-item>

      <p id="d2e5277" specific-use="STATE"><bold>for each</bold> pair class (horiz., vert., main diag., anti-diag.) <bold>do</bold></p>
            </list-item>

    <list-item>

      <p id="d2e5289" specific-use="STATE"><bold>for each</bold> red–black subset of pairs <inline-formula><mml:math id="M240" display="inline"><mml:mrow><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>,</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> <bold>do</bold> (vectorised)</p>
            </list-item>

    <list-item>

      <p id="d2e5317" specific-use="STATE"><inline-formula><mml:math id="M241" display="inline"><mml:mrow><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:msub><mml:mo>←</mml:mo><mml:mo>min⁡</mml:mo><mml:mo>(</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>h</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">Δ</mml:mi><mml:msub><mml:mi>h</mml:mi><mml:mo>max⁡</mml:mo></mml:msub><mml:mo>(</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> [<inline-formula><mml:math id="M242" display="inline"><mml:mrow><mml:mo>×</mml:mo><mml:msqrt><mml:mn mathvariant="normal">2</mml:mn></mml:msqrt></mml:mrow></mml:math></inline-formula> for diag.]</p>
            </list-item>

    <list-item>

      <p id="d2e5385" specific-use="STATE"><inline-formula><mml:math id="M243" display="inline"><mml:mrow><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>←</mml:mo><mml:mi>h</mml:mi><mml:mo>(</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mi>h</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></p>
            </list-item>

    <list-item>

      <p id="d2e5418" specific-use="STATE"><bold>if</bold> <inline-formula><mml:math id="M244" display="inline"><mml:mrow><mml:mo>|</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>|</mml:mo><mml:mo>&gt;</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M245" display="inline"><mml:mrow><mml:mi>w</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi>w</mml:mi><mml:mo>(</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo><mml:mo>&gt;</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> <bold>then</bold></p>
            </list-item>

    <list-item>

      <p id="d2e5485" specific-use="STATE"><inline-formula><mml:math id="M246" display="inline"><mml:mrow><mml:mi>e</mml:mi><mml:mo>←</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>-</mml:mo><mml:mi mathvariant="normal">sgn</mml:mi><mml:mo>(</mml:mo><mml:mi mathvariant="italic">δ</mml:mi><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:msub><mml:mi>L</mml:mi><mml:mrow><mml:mi>p</mml:mi><mml:mi>q</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula></p>
            </list-item>

    <list-item>

      <p id="d2e5522" specific-use="STATE"><inline-formula><mml:math id="M247" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>←</mml:mo><mml:mo>max⁡</mml:mo><mml:mo>(</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>,</mml:mo><mml:mo>max⁡</mml:mo><mml:mo>|</mml:mo><mml:mi>e</mml:mi><mml:mo>|</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></p>
            </list-item>

    <list-item>

      <p id="d2e5562" specific-use="STATE"><inline-formula><mml:math id="M248" display="inline"><mml:mrow><mml:mi>h</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>←</mml:mo><mml:mi>h</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi>e</mml:mi><mml:mo>⋅</mml:mo><mml:mi>w</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:mi>w</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi>w</mml:mi><mml:mo>(</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></p>
            </list-item>

    <list-item>

      <p id="d2e5631" specific-use="STATE"><inline-formula><mml:math id="M249" display="inline"><mml:mrow><mml:mi>h</mml:mi><mml:mo>(</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo><mml:mo>←</mml:mo><mml:mi>h</mml:mi><mml:mo>(</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo><mml:mo>-</mml:mo><mml:mi>e</mml:mi><mml:mo>⋅</mml:mo><mml:mi>w</mml:mi><mml:mo>(</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo><mml:mo>/</mml:mo><mml:mo>(</mml:mo><mml:mi>w</mml:mi><mml:mo>(</mml:mo><mml:mi>p</mml:mi><mml:mo>)</mml:mo><mml:mo>+</mml:mo><mml:mi>w</mml:mi><mml:mo>(</mml:mo><mml:mi>q</mml:mi><mml:mo>)</mml:mo><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula></p>
            </list-item>

    <list-item>

      <p id="d2e5700" specific-use="STATE"><bold>if</bold> <inline-formula><mml:math id="M250" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">0.999</mml:mn><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">prev</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula> <bold>then</bold> <inline-formula><mml:math id="M251" display="inline"><mml:mrow><mml:mi>c</mml:mi><mml:mo>←</mml:mo><mml:mi>c</mml:mi><mml:mo>+</mml:mo><mml:mn mathvariant="normal">1</mml:mn></mml:mrow></mml:math></inline-formula>; <bold>else</bold> <inline-formula><mml:math id="M252" display="inline"><mml:mrow><mml:mi>c</mml:mi><mml:mo>←</mml:mo><mml:mn mathvariant="normal">0</mml:mn></mml:mrow></mml:math></inline-formula></p>
            </list-item>

    <list-item>

      <p id="d2e5763" specific-use="STATE">Set <inline-formula><mml:math id="M253" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi mathvariant="normal">prev</mml:mi></mml:msub><mml:mo>←</mml:mo><mml:msub><mml:mi>E</mml:mi><mml:mi>s</mml:mi></mml:msub></mml:mrow></mml:math></inline-formula></p>
            </list-item>

    <list-item>

      <p id="d2e5787" specific-use="STATE"><bold>if</bold> <inline-formula><mml:math id="M254" display="inline"><mml:mrow><mml:msub><mml:mi>E</mml:mi><mml:mi>s</mml:mi></mml:msub><mml:mo>&lt;</mml:mo><mml:mi mathvariant="normal">inner</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi mathvariant="normal">tol</mml:mi></mml:mrow></mml:math></inline-formula> or <inline-formula><mml:math id="M255" display="inline"><mml:mrow><mml:mi>c</mml:mi><mml:mo>≥</mml:mo><mml:mn mathvariant="normal">3</mml:mn></mml:mrow></mml:math></inline-formula> <bold>then</bold> exit sweep loop</p>
            </list-item>

    <list-item>

      <p id="d2e5830" specific-use="STATE">5c. Diagnose <inline-formula><mml:math id="M256" display="inline"><mml:mrow><mml:mi>S</mml:mi><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo></mml:mrow></mml:math></inline-formula> and <inline-formula><mml:math id="M257" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub></mml:mrow></mml:math></inline-formula> from updated <inline-formula><mml:math id="M258" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> over interior points</p>
            </list-item>

    <list-item>

      <p id="d2e5879" specific-use="STATE">5d. <bold>if</bold> <inline-formula><mml:math id="M259" display="inline"><mml:mrow><mml:msub><mml:mi>S</mml:mi><mml:mrow><mml:mo>max⁡</mml:mo><mml:mo>,</mml:mo><mml:mi mathvariant="normal">int</mml:mi></mml:mrow></mml:msub><mml:mo>≤</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>+</mml:mo><mml:mi mathvariant="normal">outer</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi mathvariant="normal">tol</mml:mi><mml:mi mathvariant="normal">_</mml:mi><mml:mi mathvariant="normal">deg</mml:mi></mml:mrow></mml:math></inline-formula> <bold>then</bold> set acceptance flag to true and exit outer loop</p>
            </list-item>

    <list-item>

      <p id="d2e5924" specific-use="STATE">5e. <bold>for each</bold> interior point where <inline-formula><mml:math id="M260" display="inline"><mml:mrow><mml:mi>S</mml:mi><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>&gt;</mml:mo><mml:mi mathvariant="italic">θ</mml:mi></mml:mrow></mml:math></inline-formula> <bold>do</bold></p>
            </list-item>

    <list-item>

      <p id="d2e5958" specific-use="STATE"><inline-formula><mml:math id="M261" display="inline"><mml:mrow><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>←</mml:mo><mml:mo>max⁡</mml:mo><mml:mo>[</mml:mo><mml:mi>f</mml:mi><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>⋅</mml:mo><mml:mi mathvariant="italic">β</mml:mi><mml:mo>⋅</mml:mo><mml:mi mathvariant="italic">θ</mml:mi><mml:mo>/</mml:mo><mml:mi>S</mml:mi><mml:mo>(</mml:mo><mml:mi>i</mml:mi><mml:mo>,</mml:mo><mml:mi>j</mml:mi><mml:mo>)</mml:mo><mml:mo>,</mml:mo><mml:mspace linebreak="nobreak" width="0.25em"/><mml:msub><mml:mi>f</mml:mi><mml:mo>min⁡</mml:mo></mml:msub><mml:mo>]</mml:mo></mml:mrow></mml:math></inline-formula></p>
            </list-item>

    <list-item>

      <p id="d2e6033" specific-use="STATE">6. <bold>return</bold> <inline-formula><mml:math id="M262" display="inline"><mml:mi>h</mml:mi></mml:math></inline-formula> and acceptance flag</p>
            </list-item>
          </list></disp-quote></boxed-text>
      <p id="d2e6048">Within each red–black subset, pairwise differences are evaluated before the endpoint contributions are accumulated. Pairs adjoining frozen points enter the inner monitor when at least one endpoint is movable; points outside the active interior do not enter the outer acceptance test or local tightening.</p>
</sec>
</app>
  </app-group><notes notes-type="codedataavailability"><title>Code and data availability</title>

      <p id="d2e6056">The SCO v1.0 source code is archived on Zenodo at <ext-link xlink:href="https://doi.org/10.5281/zenodo.19501184" ext-link-type="DOI">10.5281/zenodo.19501184</ext-link> <xref ref-type="bibr" rid="bib1.bibx10" id="paren.15"/> under the GNU General Public License v3.0 or later. The archive includes the reference solver (<monospace>sco_terrain.py</monospace>), the unit-test suite (<monospace>test_sco_terrain.py</monospace>), the WRF namelist (<monospace>namelist.input</monospace>), and a worked example comprising a Fig. 1 generation script (<monospace>fig1_idealized.py</monospace>), a sample <monospace>geo_em.d02.nc</monospace> file, and a driver script (<monospace>run_example.py</monospace>) that demonstrates the full offline preprocessing workflow.</p>

      <p id="d2e6084">The simulations were performed with the Weather Research and Forecasting Model version 4.6.1 <xref ref-type="bibr" rid="bib1.bibx20" id="paren.16"/>; the exact WRF-ARW v4.6.1 source code and the WPS used for terrain preprocessing are archived on Zenodo at <ext-link xlink:href="https://doi.org/10.5281/zenodo.20809210" ext-link-type="DOI">10.5281/zenodo.20809210</ext-link> <xref ref-type="bibr" rid="bib1.bibx23" id="paren.17"/>. ERA5 reanalysis data used for initial and boundary conditions are available from the Copernicus Climate Data Store under the Creative Commons Attribution licence: hourly data on pressure levels at <ext-link xlink:href="https://doi.org/10.24381/cds.bd0915c6" ext-link-type="DOI">10.24381/cds.bd0915c6</ext-link> <xref ref-type="bibr" rid="bib1.bibx4" id="paren.18"/> and on single levels at <ext-link xlink:href="https://doi.org/10.24381/cds.adbb2d47" ext-link-type="DOI">10.24381/cds.adbb2d47</ext-link> <xref ref-type="bibr" rid="bib1.bibx5" id="paren.19"/>; the corresponding ERA5 domain subset is included in the reproducibility archive. The static terrain for the 1 km inner domain is the 30 m ASTER Global Digital Elevation Model version 3, distributed by the NASA Land Processes Distributed Active Archive Center (LP DAAC) and available at <ext-link xlink:href="https://doi.org/10.5067/ASTER/ASTGTM.003" ext-link-type="DOI">10.5067/ASTER/ASTGTM.003</ext-link> <xref ref-type="bibr" rid="bib1.bibx14" id="paren.20"/>; the corresponding ASTER tile subset is likewise included in the reproducibility archive.</p>

      <p id="d2e6115">Near-surface verification uses hourly 10 m wind speed and 2 m temperature from the China Meteorological Administration (CMA) hourly multi-element surface observation dataset (product SURF_CHN_MUL_HOR), provided by the CMA National Meteorological Information Center. These raw observations are not publicly available, but can be obtained from the CMA Meteorological Data Service Centre (<uri>https://data.cma.cn/en</uri>, last access: 29 October 2026) on reasonable request, including for the purposes of peer review.</p>

      <p id="d2e6121">The reproducibility archive on Zenodo at <ext-link xlink:href="https://doi.org/10.5281/zenodo.20809228" ext-link-type="DOI">10.5281/zenodo.20809228</ext-link> <xref ref-type="bibr" rid="bib1.bibx11" id="paren.21"/> bundles the ERA5 domain subset and ASTER tile subset noted above with everything else needed to reproduce the near-surface verification without the raw observations: the <monospace>geo_em</monospace> static-terrain fields for all members and both domains, the WPS and WRF namelists, the derived verification statistics (per-station, per-member time-averaged RMSE and bias for 10 m wind and 2 m temperature, anonymized so that no raw observation values, station coordinates, or station identifiers are included), and a reproduction script (<monospace>make_table3.py</monospace>) that regenerates the Table 3 values and the Sect. 4.3 paired <inline-formula><mml:math id="M263" display="inline"><mml:mi>t</mml:mi></mml:math></inline-formula>-tests.</p>
  </notes><notes notes-type="authorcontribution"><title>Author contributions</title>

      <p id="d2e6146">YM designed the SCO algorithm, developed the Python implementation, carried out the offline diagnostics, and wrote the manuscript. XJ configured the WRF simulations and performed the integrations using high-performance computing (HPC) resources. LM supervised the project and contributed to the experimental design. ZH contributed to station-data processing and quality control. All authors reviewed and edited the manuscript.</p>
  </notes><notes notes-type="competinginterests"><title>Competing interests</title>

      <p id="d2e6152">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="d2e6158">Publisher's note: Copernicus Publications remains neutral with regard to jurisdictional claims made in the text, published maps, institutional affiliations, or any other geographical representation in this paper. The authors bear the ultimate responsibility for providing appropriate place names. Views expressed in the text are those of the authors and do not necessarily reflect the views of the publisher.</p>
  </notes><notes notes-type="financialsupport"><title>Financial support</title>

      <p id="d2e6164">This work was supported by the Sichuan Science and Technology Program (grant nos. 2025YFNH0006 and 2024YFFK0110), the National Natural Science Foundation of China (grant no. 42375160), the National Key Research and Development Program of China (grant no. 2023YFC3007501), the Guangdong Basic and Applied Basic Research Foundation (grant no. 2022A1515110841), the Shenzhen Fundamental Research Program (grant no. JCYJ20220530164400001), and the Southwest Sichuan (Ya'an) Rainstorm Laboratory (grant no. CXNBYSYSZD202401).</p>
  </notes><notes notes-type="reviewstatement"><title>Review statement</title>

      <p id="d2e6170">This paper was edited by Lluís Fita and reviewed by two anonymous referees.</p>
  </notes><ref-list>
    <title>References</title>

      <ref id="bib1.bibx1"><label>Cannon et al.(2017)</label><mixed-citation>Cannon, F., Carvalho, L. M. V., Jones, C., Norris, J., Bookhagen, B., and Kiladis, G. N.: Effects of topographic smoothing on the simulation of winter precipitation in High Mountain Asia, J. Geophys. Res.-Atmos., 122, 1456–1474, <ext-link xlink:href="https://doi.org/10.1002/2016JD026038" ext-link-type="DOI">10.1002/2016JD026038</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx2"><label>Díaz-Fernández et al.(2025)</label><mixed-citation>Díaz-Fernández, J., Calvo-Sancho, C., Bolgiani, P., Sastre, M., López-Reyes, M., Fernández-González, S., and Martín, M. L.: Effect of complex orography on numerical simulations of a downburst event in Spain, Atmos. Res., 314, 107821, <ext-link xlink:href="https://doi.org/10.1016/j.atmosres.2024.107821" ext-link-type="DOI">10.1016/j.atmosres.2024.107821</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx3"><label>Hersbach et al.(2020)</label><mixed-citation>Hersbach, H., Bell, B., Berrisford, P., Hirahara, S., Horányi, A., Muñoz-Sabater, J., Nicolas, J., Peubey, C., Radu, R., Schepers, D., Simmons, A., Soci, C., Abdalla, S., Abellan, X., Balsamo, G., Bechtold, P., Biavati, G., Bidlot, J., Bonavita, M., De Chiara, G., Dahlgren, P., Dee, D., Diamantakis, M., Dragani, R., Flemming, J., Forbes, R., Fuentes, M., Geer, A., Haimberger, L., Healy, S., Hogan, R. J., Hólm, E., Janisková, M., Keeley, S., Laloyaux, P., Lopez, P., Lupu, C., Radnoti, G., de Rosnay, P., Rozum, I., Vamborg, F., Villaume, S., and Thépaut, J.-N.: The ERA5 global reanalysis, Q. J. Roy. Meteor. Soc., 146, 1999–2049, <ext-link xlink:href="https://doi.org/10.1002/qj.3803" ext-link-type="DOI">10.1002/qj.3803</ext-link>, 2020.</mixed-citation></ref>
      <ref id="bib1.bibx4"><label>Hersbach et al.(2023a)</label><mixed-citation>Hersbach, H., Bell, B., Berrisford, P., Biavati, G., Horányi, A., Muñoz Sabater, J., Nicolas, J., Peubey, C., Radu, R., Rozum, I., Schepers, D., Simmons, A., Soci, C., Dee, D., and Thépaut, J.-N.: ERA5 hourly data on pressure levels from 1940 to present, Copernicus Climate Change Service (C3S) Climate Data Store (CDS) [data set], <ext-link xlink:href="https://doi.org/10.24381/cds.bd0915c6" ext-link-type="DOI">10.24381/cds.bd0915c6</ext-link>, 2023a.</mixed-citation></ref>
      <ref id="bib1.bibx5"><label>Hersbach et al.(2023b)</label><mixed-citation>Hersbach, H., Bell, B., Berrisford, P., Biavati, G., Horányi, A., Muñoz Sabater, J., Nicolas, J., Peubey, C., Radu, R., Rozum, I., Schepers, D., Simmons, A., Soci, C., Dee, D., and Thépaut, J.-N.: ERA5 hourly data on single levels from 1940 to present, Copernicus Climate Change Service (C3S) Climate Data Store (CDS) [data set], <ext-link xlink:href="https://doi.org/10.24381/cds.adbb2d47" ext-link-type="DOI">10.24381/cds.adbb2d47</ext-link>, 2023b.</mixed-citation></ref>
      <ref id="bib1.bibx6"><label>Hong et al.(2006)</label><mixed-citation>Hong, S. Y., Noh, Y., and Dudhia, J.: A new vertical diffusion package with an explicit treatment of entrainment processes, Mon. Weather Rev., 134, 2318–2341, <ext-link xlink:href="https://doi.org/10.1175/mwr3199.1" ext-link-type="DOI">10.1175/mwr3199.1</ext-link>, 2006.</mixed-citation></ref>
      <ref id="bib1.bibx7"><label>Iacono et al.(2008)</label><mixed-citation>Iacono, M. J., Delamere, J. S., Mlawer, E. J., Shephard, M. W., Clough, S. A., and Collins, W. D.: Radiative forcing by long-lived greenhouse gases: Calculations with the AER radiative transfer models, J. Geophys. Res., 113, D13103, <ext-link xlink:href="https://doi.org/10.1029/2008JD009944" ext-link-type="DOI">10.1029/2008JD009944</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx8"><label>Klemp et al.(2003)</label><mixed-citation>Klemp, J. B., Skamarock, W. C., and Fuhrer, O.: Numerical consistency of metric terms in terrain-following coordinates, Mon. Weather Rev., 131, 1229–1239, <ext-link xlink:href="https://doi.org/10.1175/1520-0493(2003)131&lt;1229:NCOMTI&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0493(2003)131&lt;1229:NCOMTI&gt;2.0.CO;2</ext-link>, 2003.</mixed-citation></ref>
      <ref id="bib1.bibx9"><label>Le Bouëdec et al.(2025)</label><mixed-citation>Le Bouëdec, E., Chemel, C., and Staquet, C.: Dealing with steep slopes when modeling stable boundary-layer flow in Alpine terrain, Q. J. Roy. Meteor. Soc., 151, e4835, <ext-link xlink:href="https://doi.org/10.1002/qj.4835" ext-link-type="DOI">10.1002/qj.4835</ext-link>, 2025.</mixed-citation></ref>
      <ref id="bib1.bibx10"><label>Ma(2026)</label><mixed-citation>Ma, Y.: SCO v1.0: Slope-Constrained Orography for WRF terrain preprocessing (v1.0), Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.19501184" ext-link-type="DOI">10.5281/zenodo.19501184</ext-link>, 2026.</mixed-citation></ref>
      <ref id="bib1.bibx11"><label>Ma et al.(2026)</label><mixed-citation>Ma, Y., Jiang, X., Mu, L., and Heng, Z.: Reproducibility archive for “Slope-Constrained Orography (SCO v1.0) for explicit discrete-slope control in terrain preprocessing”, Zenodo [data set], <ext-link xlink:href="https://doi.org/10.5281/zenodo.20809228" ext-link-type="DOI">10.5281/zenodo.20809228</ext-link>, 2026.</mixed-citation></ref>
      <ref id="bib1.bibx12"><label>Ma and Liu(2017)</label><mixed-citation>Ma, Y. and Liu, H.: Large-eddy simulations of atmospheric flows over complex terrain using the immersed-boundary method in the Weather Research and Forecasting Model, Bound.-Lay. Meteorol., 165, 421–445, <ext-link xlink:href="https://doi.org/10.1007/s10546-017-0283-9" ext-link-type="DOI">10.1007/s10546-017-0283-9</ext-link>, 2017.</mixed-citation></ref>
      <ref id="bib1.bibx13"><label>Mahrer(1984)</label><mixed-citation>Mahrer, Y.: An improved numerical approximation of the horizontal gradients in a terrain-following coordinate system, Mon. Weather Rev., 112, 918–922, <ext-link xlink:href="https://doi.org/10.1175/1520-0493(1984)112&lt;0918:AINAOT&gt;2.0.CO;2" ext-link-type="DOI">10.1175/1520-0493(1984)112&lt;0918:AINAOT&gt;2.0.CO;2</ext-link>, 1984.</mixed-citation></ref>
      <ref id="bib1.bibx14"><label>NASA/METI/AIST/Japan Spacesystems and U.S./Japan ASTER Science Team(2019)</label><mixed-citation>NASA/METI/AIST/Japan Spacesystems and U.S./Japan ASTER Science Team: ASTER Global Digital Elevation Model V003, NASA EOSDIS Land Processes DAAC [data set], <ext-link xlink:href="https://doi.org/10.5067/ASTER/ASTGTM.003" ext-link-type="DOI">10.5067/ASTER/ASTGTM.003</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx15"><label>Niu et al.(2011)</label><mixed-citation>Niu, G.-Y., Yang, Z.-L., Mitchell, K. E., Chen, F., Ek, M. B., Barlage, M., Kumar, A., Manning, K., Niyogi, D., Rosero, E., Tewari, M., and Xia, Y.: The community Noah land surface model with multiparameterization options (Noah-MP): 1. Model description and evaluation with local-scale measurements, J. Geophys. Res., 116, D12109, <ext-link xlink:href="https://doi.org/10.1029/2010JD015139" ext-link-type="DOI">10.1029/2010JD015139</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx16"><label>Park et al.(2019)</label><mixed-citation>Park, S. H., Klemp, J. B., and Kim, J. H.: Hybrid mass coordinate in WRF-ARW and its impact on upper-level turbulence forecasting, Mon. Weather Rev., 147, 971–985, <ext-link xlink:href="https://doi.org/10.1175/MWR-D-18-0334.1" ext-link-type="DOI">10.1175/MWR-D-18-0334.1</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx17"><label>Raderschall et al.(2008)</label><mixed-citation>Raderschall, N., Lehning, M., and Schär, C.: Fine-scale modeling of the boundary layer wind field over steep topography, Water Resour. Res., 44, W09425, <ext-link xlink:href="https://doi.org/10.1029/2007WR006544" ext-link-type="DOI">10.1029/2007WR006544</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx18"><label>Raluy-López et al.(2026)</label><mixed-citation>Raluy-López, E., Muñoz-Esparza, D., and Montávez, J. P.: A local terrain smoothing approach for stabilizing microscale and high-resolution mesoscale simulations: a case study using FastEddy<sup>®</sup> (v3.0) and WRF (v4.6.0), Geosci. Model Dev., 19, 5139–5154, <ext-link xlink:href="https://doi.org/10.5194/gmd-19-5139-2026" ext-link-type="DOI">10.5194/gmd-19-5139-2026</ext-link>, 2026.</mixed-citation></ref>
      <ref id="bib1.bibx19"><label>Sheridan et al.(2023)</label><mixed-citation>Sheridan, P., Xu, A., Li, J., and Furtado, K.: Use of targeted orographic smoothing in very high resolution simulations of a downslope windstorm and rotor in a sub-tropical highland location, Adv. Atmos. Sci., 40, 2043–2062, <ext-link xlink:href="https://doi.org/10.1007/s00376-023-2298-0" ext-link-type="DOI">10.1007/s00376-023-2298-0</ext-link>, 2023.</mixed-citation></ref>
      <ref id="bib1.bibx20"><label>Skamarock et al.(2019)</label><mixed-citation>Skamarock, W. C., Klemp, J. B., Dudhia, J., Gill, D. O., Liu, Z., Berner, J., Wang, W., Powers, J. G., Duda, M. G., Barker, D. M., and Huang, X.-Y.: A description of the advanced research WRF version 4, NCAR Tech. Note NCAR/TN-556<inline-formula><mml:math id="M264" display="inline"><mml:mo>+</mml:mo></mml:math></inline-formula>STR, <ext-link xlink:href="https://doi.org/10.5065/1dfh-6p97" ext-link-type="DOI">10.5065/1dfh-6p97</ext-link>, 2019.</mixed-citation></ref>
      <ref id="bib1.bibx21"><label>Tachikawa et al.(2011)</label><mixed-citation>Tachikawa, T., Hato, M., Kaku, M., and Iwasaki, A.: Characteristics of ASTER GDEM version 2, in: 2011 IEEE International Geoscience and Remote Sensing Symposium, Vancouver, BC, Canada, 3657–3660, <ext-link xlink:href="https://doi.org/10.1109/IGARSS.2011.6050017" ext-link-type="DOI">10.1109/IGARSS.2011.6050017</ext-link>, 2011.</mixed-citation></ref>
      <ref id="bib1.bibx22"><label>Thompson et al.(2008)</label><mixed-citation>Thompson, G., Field, P. R., Rasmussen, R. M., and Hall, W. D.: Explicit forecasts of winter precipitation using an improved bulk microphysics scheme. Part II: Implementation of a new snow parameterization, Mon. Weather Rev., 136, 5095–5115, <ext-link xlink:href="https://doi.org/10.1175/2008mwr2387.1" ext-link-type="DOI">10.1175/2008mwr2387.1</ext-link>, 2008.</mixed-citation></ref>
      <ref id="bib1.bibx23"><label>WRF Community and NCAR(2026)</label><mixed-citation>WRF Community and NCAR: Weather Research and Forecasting (WRF) Model and WRF Preprocessing System (WPS) (WRF-ARW v4.6.1), Zenodo [code], <ext-link xlink:href="https://doi.org/10.5281/zenodo.20809210" ext-link-type="DOI">10.5281/zenodo.20809210</ext-link>, 2026.</mixed-citation></ref>
      <ref id="bib1.bibx24"><label>Zängl et al.(2004)</label><mixed-citation>Zängl, G., Gantner, L., Hartjenstein, G., and Noppel, H.: Numerical errors above steep topography: A model intercomparison, Meteorol. Z., 13, 69–76, <ext-link xlink:href="https://doi.org/10.1127/0941-2948/2004/0013-0069" ext-link-type="DOI">10.1127/0941-2948/2004/0013-0069</ext-link>, 2004.</mixed-citation></ref>

  </ref-list></back>
    <!--<article-title-html>Slope-Constrained Orography (SCO v1.0) for explicit discrete-slope control in terrain preprocessing: a case study with WRF-ARW (v4.6.1)</article-title-html>
<abstract-html/>
<ref-html id="bib1.bib1"><label>Cannon et al.(2017)</label><mixed-citation>
      
Cannon, F., Carvalho, L. M. V., Jones, C., Norris, J., Bookhagen, B., and Kiladis, G. N.: Effects of topographic smoothing on the simulation of winter precipitation in High Mountain Asia, J. Geophys. Res.-Atmos., 122, 1456–1474, <a href="https://doi.org/10.1002/2016JD026038" target="_blank">https://doi.org/10.1002/2016JD026038</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib2"><label>Díaz-Fernández et al.(2025)</label><mixed-citation>
      
Díaz-Fernández, J., Calvo-Sancho, C., Bolgiani, P., Sastre, M., López-Reyes, M., Fernández-González, S., and Martín, M. L.: Effect of complex orography on numerical simulations of a downburst event in Spain, Atmos. Res., 314, 107821, <a href="https://doi.org/10.1016/j.atmosres.2024.107821" target="_blank">https://doi.org/10.1016/j.atmosres.2024.107821</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib3"><label>Hersbach et al.(2020)</label><mixed-citation>
      
Hersbach, H., Bell, B., Berrisford, P., Hirahara, S., Horányi, A., Muñoz-Sabater, J., Nicolas, J., Peubey, C., Radu, R., Schepers, D., Simmons, A., Soci, C., Abdalla, S., Abellan, X., Balsamo, G., Bechtold, P., Biavati, G., Bidlot, J., Bonavita, M., De Chiara, G., Dahlgren, P., Dee, D., Diamantakis, M., Dragani, R., Flemming, J., Forbes, R., Fuentes, M., Geer, A., Haimberger, L., Healy, S., Hogan, R. J., Hólm, E., Janisková, M., Keeley, S., Laloyaux, P., Lopez, P., Lupu, C., Radnoti, G., de Rosnay, P., Rozum, I., Vamborg, F., Villaume, S., and Thépaut, J.-N.: The ERA5 global reanalysis, Q. J. Roy. Meteor. Soc., 146, 1999–2049, <a href="https://doi.org/10.1002/qj.3803" target="_blank">https://doi.org/10.1002/qj.3803</a>, 2020.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib4"><label>Hersbach et al.(2023a)</label><mixed-citation>
      
Hersbach, H., Bell, B., Berrisford, P., Biavati, G., Horányi, A., Muñoz Sabater, J., Nicolas, J., Peubey, C., Radu, R., Rozum, I., Schepers, D., Simmons, A., Soci, C., Dee, D., and Thépaut, J.-N.: ERA5 hourly data on pressure levels from 1940 to present, Copernicus Climate Change Service (C3S) Climate Data Store (CDS) [data set], <a href="https://doi.org/10.24381/cds.bd0915c6" target="_blank">https://doi.org/10.24381/cds.bd0915c6</a>, 2023a.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib5"><label>Hersbach et al.(2023b)</label><mixed-citation>
      
Hersbach, H., Bell, B., Berrisford, P., Biavati, G., Horányi, A., Muñoz Sabater, J., Nicolas, J., Peubey, C., Radu, R., Rozum, I., Schepers, D., Simmons, A., Soci, C., Dee, D., and Thépaut, J.-N.: ERA5 hourly data on single levels from 1940 to present, Copernicus Climate Change Service (C3S) Climate Data Store (CDS) [data set], <a href="https://doi.org/10.24381/cds.adbb2d47" target="_blank">https://doi.org/10.24381/cds.adbb2d47</a>, 2023b.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib6"><label>Hong et al.(2006)</label><mixed-citation>
      
Hong, S. Y., Noh, Y., and Dudhia, J.: A new vertical diffusion package with an explicit treatment of entrainment processes, Mon. Weather Rev., 134, 2318–2341, <a href="https://doi.org/10.1175/mwr3199.1" target="_blank">https://doi.org/10.1175/mwr3199.1</a>, 2006.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib7"><label>Iacono et al.(2008)</label><mixed-citation>
      
Iacono, M. J., Delamere, J. S., Mlawer, E. J., Shephard, M. W., Clough, S. A., and Collins, W. D.: Radiative forcing by long-lived greenhouse gases: Calculations with the AER radiative transfer models, J. Geophys. Res., 113, D13103, <a href="https://doi.org/10.1029/2008JD009944" target="_blank">https://doi.org/10.1029/2008JD009944</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib8"><label>Klemp et al.(2003)</label><mixed-citation>
      
Klemp, J. B., Skamarock, W. C., and Fuhrer, O.: Numerical consistency of metric terms in terrain-following coordinates, Mon. Weather Rev., 131, 1229–1239, <a href="https://doi.org/10.1175/1520-0493(2003)131&lt;1229:NCOMTI&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0493(2003)131&lt;1229:NCOMTI&gt;2.0.CO;2</a>, 2003.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib9"><label>Le Bouëdec et al.(2025)</label><mixed-citation>
      
Le Bouëdec, E., Chemel, C., and Staquet, C.: Dealing with steep slopes when modeling stable boundary-layer flow in Alpine terrain, Q. J. Roy. Meteor. Soc., 151, e4835, <a href="https://doi.org/10.1002/qj.4835" target="_blank">https://doi.org/10.1002/qj.4835</a>, 2025.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib10"><label>Ma(2026)</label><mixed-citation>
      
Ma, Y.: SCO v1.0: Slope-Constrained Orography for WRF terrain preprocessing (v1.0), Zenodo [code], <a href="https://doi.org/10.5281/zenodo.19501184" target="_blank">https://doi.org/10.5281/zenodo.19501184</a>, 2026.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib11"><label>Ma et al.(2026)</label><mixed-citation>
      
Ma, Y., Jiang, X., Mu, L., and Heng, Z.: Reproducibility archive for “Slope-Constrained Orography (SCO v1.0) for explicit discrete-slope control in terrain preprocessing”, Zenodo [data set], <a href="https://doi.org/10.5281/zenodo.20809228" target="_blank">https://doi.org/10.5281/zenodo.20809228</a>, 2026.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib12"><label>Ma and Liu(2017)</label><mixed-citation>
      
Ma, Y. and Liu, H.: Large-eddy simulations of atmospheric flows over complex terrain using the immersed-boundary method in the Weather Research and Forecasting Model, Bound.-Lay. Meteorol., 165, 421–445, <a href="https://doi.org/10.1007/s10546-017-0283-9" target="_blank">https://doi.org/10.1007/s10546-017-0283-9</a>, 2017.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib13"><label>Mahrer(1984)</label><mixed-citation>
      
Mahrer, Y.: An improved numerical approximation of the horizontal gradients in a terrain-following coordinate system, Mon. Weather Rev., 112, 918–922, <a href="https://doi.org/10.1175/1520-0493(1984)112&lt;0918:AINAOT&gt;2.0.CO;2" target="_blank">https://doi.org/10.1175/1520-0493(1984)112&lt;0918:AINAOT&gt;2.0.CO;2</a>, 1984.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib14"><label>NASA/METI/AIST/Japan Spacesystems and U.S./Japan ASTER Science Team(2019)</label><mixed-citation>
      
NASA/METI/AIST/Japan Spacesystems and U.S./Japan ASTER Science Team: ASTER Global Digital Elevation Model V003, NASA EOSDIS Land Processes DAAC [data set], <a href="https://doi.org/10.5067/ASTER/ASTGTM.003" target="_blank">https://doi.org/10.5067/ASTER/ASTGTM.003</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib15"><label>Niu et al.(2011)</label><mixed-citation>
      
Niu, G.-Y., Yang, Z.-L., Mitchell, K. E., Chen, F., Ek, M. B., Barlage, M., Kumar, A., Manning, K., Niyogi, D., Rosero, E., Tewari, M., and Xia, Y.: The community Noah land surface model with multiparameterization options (Noah-MP): 1. Model description and evaluation with local-scale measurements, J. Geophys. Res., 116, D12109, <a href="https://doi.org/10.1029/2010JD015139" target="_blank">https://doi.org/10.1029/2010JD015139</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib16"><label>Park et al.(2019)</label><mixed-citation>
      
Park, S. H., Klemp, J. B., and Kim, J. H.: Hybrid mass coordinate in WRF-ARW and its impact on upper-level turbulence forecasting, Mon. Weather Rev., 147, 971–985, <a href="https://doi.org/10.1175/MWR-D-18-0334.1" target="_blank">https://doi.org/10.1175/MWR-D-18-0334.1</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib17"><label>Raderschall et al.(2008)</label><mixed-citation>
      
Raderschall, N., Lehning, M., and Schär, C.: Fine-scale modeling of the boundary layer wind field over steep topography, Water Resour. Res., 44, W09425, <a href="https://doi.org/10.1029/2007WR006544" target="_blank">https://doi.org/10.1029/2007WR006544</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib18"><label>Raluy-López et al.(2026)</label><mixed-citation>
      
Raluy-López, E., Muñoz-Esparza, D., and Montávez, J. P.: A local terrain smoothing approach for stabilizing microscale and high-resolution mesoscale simulations: a case study using FastEddy<span style="position:relative; bottom:0.5em; " class="text">®</span> (v3.0) and WRF (v4.6.0), Geosci. Model Dev., 19, 5139–5154, <a href="https://doi.org/10.5194/gmd-19-5139-2026" target="_blank">https://doi.org/10.5194/gmd-19-5139-2026</a>, 2026.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib19"><label>Sheridan et al.(2023)</label><mixed-citation>
      
Sheridan, P., Xu, A., Li, J., and Furtado, K.: Use of targeted orographic smoothing in very high resolution simulations of a downslope windstorm and rotor in a sub-tropical highland location, Adv. Atmos. Sci., 40, 2043–2062, <a href="https://doi.org/10.1007/s00376-023-2298-0" target="_blank">https://doi.org/10.1007/s00376-023-2298-0</a>, 2023.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib20"><label>Skamarock et al.(2019)</label><mixed-citation>
      
Skamarock, W. C., Klemp, J. B., Dudhia, J., Gill, D. O., Liu, Z., Berner, J., Wang, W., Powers, J. G., Duda, M. G., Barker, D. M., and Huang, X.-Y.: A description of the advanced research WRF version 4, NCAR Tech. Note NCAR/TN-556+STR, <a href="https://doi.org/10.5065/1dfh-6p97" target="_blank">https://doi.org/10.5065/1dfh-6p97</a>, 2019.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib21"><label>Tachikawa et al.(2011)</label><mixed-citation>
      
Tachikawa, T., Hato, M., Kaku, M., and Iwasaki, A.: Characteristics of ASTER GDEM version 2, in: 2011 IEEE International Geoscience and Remote Sensing Symposium, Vancouver, BC, Canada, 3657–3660, <a href="https://doi.org/10.1109/IGARSS.2011.6050017" target="_blank">https://doi.org/10.1109/IGARSS.2011.6050017</a>, 2011.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib22"><label>Thompson et al.(2008)</label><mixed-citation>
      
Thompson, G., Field, P. R., Rasmussen, R. M., and Hall, W. D.: Explicit forecasts of winter precipitation using an improved bulk microphysics scheme. Part II: Implementation of a new snow parameterization, Mon. Weather Rev., 136, 5095–5115, <a href="https://doi.org/10.1175/2008mwr2387.1" target="_blank">https://doi.org/10.1175/2008mwr2387.1</a>, 2008.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib23"><label>WRF Community and NCAR(2026)</label><mixed-citation>
      
WRF Community and NCAR: Weather Research and Forecasting (WRF) Model and WRF Preprocessing System (WPS) (WRF-ARW v4.6.1), Zenodo [code], <a href="https://doi.org/10.5281/zenodo.20809210" target="_blank">https://doi.org/10.5281/zenodo.20809210</a>, 2026.

    </mixed-citation></ref-html>
<ref-html id="bib1.bib24"><label>Zängl et al.(2004)</label><mixed-citation>
      
Zängl, G., Gantner, L., Hartjenstein, G., and Noppel, H.: Numerical errors above steep topography: A model intercomparison, Meteorol. Z., 13, 69–76, <a href="https://doi.org/10.1127/0941-2948/2004/0013-0069" target="_blank">https://doi.org/10.1127/0941-2948/2004/0013-0069</a>, 2004.

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