<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.20" xml:lang="en-US">
  <compounddef id="namespacepqm__functions" kind="namespace" language="Fortran">
    <compoundname>pqm_functions</compoundname>
      <sectiondef kind="var">
      <memberdef kind="variable" id="namespacepqm__functions_1a3bd59442a660e0e66c29603c992932e6" prot="private" static="no" mutable="no">
        <type>real, parameter</type>
        <definition>real, parameter pqm_functions::hneglect_dflt</definition>
        <argsstring></argsstring>
        <name>hneglect_dflt</name>
        <initializer>= 1.E-30</initializer>
        <briefdescription>
<para>Default negligible cell thickness. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ALE/PQM_functions.F90" line="12" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/PQM_functions.F90" bodystart="12" bodyend="12"/>
        <referencedby refid="namespacepqm__functions_1a1e0e86d8470dd334b9cd676f511f6720" compoundref="PQM__functions_8F90" startline="502" endline="828">pqm_boundary_extrapolation_v1</referencedby>
        <referencedby refid="namespacepqm__functions_1aab9f3108956943c39ed2d4b675d78021" compoundref="PQM__functions_8F90" startline="76" endline="336">pqm_limiter</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacepqm__functions_1afa6f7b5430011f03c428b329c5f42fae" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public pqm_functions::pqm_reconstruction</definition>
        <argsstring>(N, h, u, edge_values, edge_slopes, ppoly_coef, h_neglect, answers_2018)</argsstring>
        <name>pqm_reconstruction</name>
        <param>
          <type>N</type>
          <defname>N</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>u</type>
          <defname>u</defname>
        </param>
        <param>
          <type>edge_values</type>
          <defname>edge_values</defname>
        </param>
        <param>
          <type>edge_slopes</type>
          <defname>edge_slopes</defname>
        </param>
        <param>
          <type>ppoly_coef</type>
          <defname>ppoly_coef</defname>
        </param>
        <param>
          <type>h_neglect</type>
          <defname>h_neglect</defname>
        </param>
        <param>
          <type>answers_2018</type>
          <defname>answers_2018</defname>
        </param>
        <briefdescription>
<para>Reconstruction by quartic polynomials within each cell. </para>
        </briefdescription>
        <detaileddescription>
<para>It is assumed that the dimension of &apos;u&apos; is equal to the number of cells defining &apos;grid&apos; and &apos;ppoly&apos;. No consistency check is performed. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">n</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of cells </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>cell widths (size N) [H] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">u</parametername>
</parameternamelist>
<parameterdescription>
<para>cell averages (size N) [A] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">edge_values</parametername>
</parameternamelist>
<parameterdescription>
<para>Edge value of polynomial [A] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">edge_slopes</parametername>
</parameternamelist>
<parameterdescription>
<para>Edge slope of polynomial [A H-1] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">ppoly_coef</parametername>
</parameternamelist>
<parameterdescription>
<para>Coefficients of polynomial, mainly [A] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_neglect</parametername>
</parameternamelist>
<parameterdescription>
<para>A negligibly small width for the purpose of cell reconstructions [H] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">answers_2018</parametername>
</parameternamelist>
<parameterdescription>
<para>If true use older, less acccurate expressions. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ALE/PQM_functions.F90" line="20" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/PQM_functions.F90" bodystart="21" bodyend="66"/>
        <references refid="namespacepqm__functions_1aab9f3108956943c39ed2d4b675d78021" compoundref="PQM__functions_8F90" startline="76" endline="336">pqm_limiter</references>
        <referencedby refid="namespacemom__remapping_1a5bb0006054c9fa4522783aa3f1f500d5" compoundref="MOM__remapping_8F90" startline="358" endline="440">mom_remapping::build_reconstructions_1d</referencedby>
        <referencedby refid="namespaceregrid__interp_1a3d1406836d089b4553421776277e1339" compoundref="regrid__interp_8F90" startline="80" endline="262">regrid_interp::regridding_set_ppolys</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacepqm__functions_1aab9f3108956943c39ed2d4b675d78021" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine pqm_functions::pqm_limiter</definition>
        <argsstring>(N, h, u, edge_values, edge_slopes, h_neglect, answers_2018)</argsstring>
        <name>pqm_limiter</name>
        <param>
          <type>N</type>
          <defname>N</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>u</type>
          <defname>u</defname>
        </param>
        <param>
          <type>edge_values</type>
          <defname>edge_values</defname>
        </param>
        <param>
          <type>edge_slopes</type>
          <defname>edge_slopes</defname>
        </param>
        <param>
          <type>h_neglect</type>
          <defname>h_neglect</defname>
        </param>
        <param>
          <type>answers_2018</type>
          <defname>answers_2018</defname>
        </param>
        <briefdescription>
<para>Limit the piecewise quartic method reconstruction. </para>
        </briefdescription>
        <detaileddescription>
<para>Standard PQM limiter (White &amp; Adcroft, JCP 2008).</para>
<para>It is assumed that the dimension of &apos;u&apos; is equal to the number of cells defining &apos;grid&apos; and &apos;ppoly&apos;. No consistency check is performed. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">n</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of cells </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>cell widths (size N) [H] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">u</parametername>
</parameternamelist>
<parameterdescription>
<para>cell average properties (size N) [A] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">edge_values</parametername>
</parameternamelist>
<parameterdescription>
<para>Potentially modified edge values [A] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">edge_slopes</parametername>
</parameternamelist>
<parameterdescription>
<para>Potentially modified edge slopes [A H-1] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_neglect</parametername>
</parameternamelist>
<parameterdescription>
<para>A negligibly small width for the purpose of cell reconstructions [H] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">answers_2018</parametername>
</parameternamelist>
<parameterdescription>
<para>If true use older, less acccurate expressions. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ALE/PQM_functions.F90" line="75" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/PQM_functions.F90" bodystart="76" bodyend="336"/>
        <references refid="namespaceregrid__edge__values_1a8480933738145ee2525e1bf449f14097" compoundref="regrid__edge__values_8F90" startline="45" endline="108">regrid_edge_values::bound_edge_values</references>
        <references refid="namespaceregrid__edge__values_1a4a496536a77bef8467c441731619761d" compoundref="regrid__edge__values_8F90" startline="141" endline="157">regrid_edge_values::check_discontinuous_edge_values</references>
        <references refid="namespacepqm__functions_1a3bd59442a660e0e66c29603c992932e6" compoundref="PQM__functions_8F90" startline="12" endline="12">hneglect_dflt</references>
        <referencedby refid="namespacepqm__functions_1afa6f7b5430011f03c428b329c5f42fae" compoundref="PQM__functions_8F90" startline="21" endline="66">pqm_reconstruction</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacepqm__functions_1ad970064d6c3540fd00dff2453d0778d7" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public pqm_functions::pqm_boundary_extrapolation</definition>
        <argsstring>(N, h, u, edge_values, ppoly_coef)</argsstring>
        <name>pqm_boundary_extrapolation</name>
        <param>
          <type>N</type>
          <defname>N</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>u</type>
          <defname>u</defname>
        </param>
        <param>
          <type>edge_values</type>
          <defname>edge_values</defname>
        </param>
        <param>
          <type>ppoly_coef</type>
          <defname>ppoly_coef</defname>
        </param>
        <briefdescription>
<para>Reconstruction by parabolas within boundary cells. </para>
        </briefdescription>
        <detaileddescription>
<para>The following explanations apply to the left boundary cell. The same reasoning holds for the right boundary cell.</para>
<para>A parabola needs to be built in the cell and requires three degrees of freedom, which are the right edge value and slope and the cell average. The right edge values and slopes are taken to be that of the neighboring cell (i.e., the left edge value and slope of the neighboring cell). The resulting parabola is not necessarily monotonic and the traditional PPM limiter is used to modify one of the edge values in order to yield a monotonic parabola.</para>
<para>It is assumed that the size of the array &apos;u&apos; is equal to the number of cells defining &apos;grid&apos; and &apos;ppoly&apos;. No consistency check is performed here. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">n</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of cells </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>cell widths (size N) [H] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">u</parametername>
</parameternamelist>
<parameterdescription>
<para>cell averages (size N) [A] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">edge_values</parametername>
</parameternamelist>
<parameterdescription>
<para>Edge value of polynomial [A] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">ppoly_coef</parametername>
</parameternamelist>
<parameterdescription>
<para>Coefficients of polynomial, mainly [A] </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ALE/PQM_functions.F90" line="354" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/PQM_functions.F90" bodystart="355" bodyend="482"/>
      </memberdef>
      <memberdef kind="function" id="namespacepqm__functions_1a1e0e86d8470dd334b9cd676f511f6720" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public pqm_functions::pqm_boundary_extrapolation_v1</definition>
        <argsstring>(N, h, u, edge_values, edge_slopes, ppoly_coef, h_neglect)</argsstring>
        <name>pqm_boundary_extrapolation_v1</name>
        <param>
          <type>N</type>
          <defname>N</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>u</type>
          <defname>u</defname>
        </param>
        <param>
          <type>edge_values</type>
          <defname>edge_values</defname>
        </param>
        <param>
          <type>edge_slopes</type>
          <defname>edge_slopes</defname>
        </param>
        <param>
          <type>ppoly_coef</type>
          <defname>ppoly_coef</defname>
        </param>
        <param>
          <type>h_neglect</type>
          <defname>h_neglect</defname>
        </param>
        <briefdescription>
<para>Reconstruction by parabolas within boundary cells. </para>
        </briefdescription>
        <detaileddescription>
<para>The following explanations apply to the left boundary cell. The same reasoning holds for the right boundary cell.</para>
<para>A parabola needs to be built in the cell and requires three degrees of freedom, which are the right edge value and slope and the cell average. The right edge values and slopes are taken to be that of the neighboring cell (i.e., the left edge value and slope of the neighboring cell). The resulting parabola is not necessarily monotonic and the traditional PPM limiter is used to modify one of the edge values in order to yield a monotonic parabola.</para>
<para>It is assumed that the size of the array &apos;u&apos; is equal to the number of cells defining &apos;grid&apos; and &apos;ppoly&apos;. No consistency check is performed here. <parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">n</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of cells </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>cell widths (size N) [H] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">u</parametername>
</parameternamelist>
<parameterdescription>
<para>cell averages (size N) [A] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">edge_values</parametername>
</parameternamelist>
<parameterdescription>
<para>Edge value of polynomial [A] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">edge_slopes</parametername>
</parameternamelist>
<parameterdescription>
<para>Edge slope of polynomial [A H-1] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">ppoly_coef</parametername>
</parameternamelist>
<parameterdescription>
<para>Coefficients of polynomial, mainly [A] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_neglect</parametername>
</parameternamelist>
<parameterdescription>
<para>A negligibly small width for the purpose of cell reconstructions [H] </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ALE/PQM_functions.F90" line="501" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/PQM_functions.F90" bodystart="502" bodyend="828"/>
        <references refid="namespacepqm__functions_1a3bd59442a660e0e66c29603c992932e6" compoundref="PQM__functions_8F90" startline="12" endline="12">hneglect_dflt</references>
        <referencedby refid="namespacemom__remapping_1a5bb0006054c9fa4522783aa3f1f500d5" compoundref="MOM__remapping_8F90" startline="358" endline="440">mom_remapping::build_reconstructions_1d</referencedby>
        <referencedby refid="namespaceregrid__interp_1a3d1406836d089b4553421776277e1339" compoundref="regrid__interp_8F90" startline="80" endline="262">regrid_interp::regridding_set_ppolys</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Piecewise quartic reconstruction functions. </para>
    </briefdescription>
    <detaileddescription>
<para>Date of creation: 2008.06.06 L. White.</para>
<para>This module contains routines that handle one-dimensionnal finite volume reconstruction using the piecewise quartic method (PQM). </para>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/ALE/PQM_functions.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
