<?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.14">
  <compounddef id="namespaceppm__functions" kind="namespace" language="Fortran">
    <compoundname>ppm_functions</compoundname>
      <sectiondef kind="var">
      <memberdef kind="variable" id="namespaceppm__functions_1a86e3d1a796b4934167d563eda5310a0e" prot="private" static="no" mutable="no">
        <type>real, parameter</type>
        <definition>real, parameter ppm_functions::hneglect_dflt</definition>
        <argsstring></argsstring>
        <name>hneglect_dflt</name>
        <initializer>= 1.E-30</initializer>
        <briefdescription>
<para>A tiny width that is so small that adding it to cell widths does not change the value due to a computational representation. It is used to avoid division by zero. </para>        </briefdescription>
        <detaileddescription>
<para><simplesect kind="note"><para>This is a dimensional parameter and should really include a unit conversion. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ALE/PPM_functions.F90" line="23" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/PPM_functions.F90" bodystart="23" bodyend="23"/>
        <referencedby refid="namespaceppm__functions_1ac8f382eb9d1f0df80aab9e07eb2ceebe" compoundref="PPM__functions_8F90" startline="134" endline="284">ppm_boundary_extrapolation</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespaceppm__functions_1a5c4e47be75ad413904902582b3d0d4a4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public ppm_functions::ppm_reconstruction</definition>
        <argsstring>(N, h, u, edge_values, ppoly_coef, h_neglect, answers_2018)</argsstring>
        <name>ppm_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>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>Builds quadratic polynomials coefficients from cell mean and edge values. </para>        </briefdescription>
        <detaileddescription>
<para><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 [H]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">u</parametername>
</parameternamelist>
<parameterdescription>
<para>Cell averages [A]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">edge_values</parametername>
</parameternamelist>
<parameterdescription>
<para>Edge values [A]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">ppoly_coef</parametername>
</parameternamelist>
<parameterdescription>
<para>Polynomial coefficients, mainly [A]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_neglect</parametername>
</parameternamelist>
<parameterdescription>
<para>A negligibly small width [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/PPM_functions.F90" line="28" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/PPM_functions.F90" bodystart="29" bodyend="56"/>
        <references refid="namespaceppm__functions_1a3d365f4992a6d3b5cbcaca630c502b95" compoundref="PPM__functions_8F90" startline="63" endline="127">ppm_limiter_standard</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>
        <referencedby refid="namespacemom__remapping_1a5849f564453d5ed76fb4feffd41eca26" compoundref="MOM__remapping_8F90" startline="1617" endline="1883">mom_remapping::remapping_unit_tests</referencedby>
        <referencedby refid="namespacemom__ale_1a1920c7b1be73d2bf7c5afc29b1b1245b" compoundref="MOM__ALE_8F90" startline="1100" endline="1180">mom_ale::ts_ppm_edge_values</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespaceppm__functions_1a3d365f4992a6d3b5cbcaca630c502b95" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine ppm_functions::ppm_limiter_standard</definition>
        <argsstring>(N, h, u, edge_values, h_neglect, answers_2018)</argsstring>
        <name>ppm_limiter_standard</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>h_neglect</type>
          <defname>h_neglect</defname>
        </param>
        <param>
          <type>answers_2018</type>
          <defname>answers_2018</defname>
        </param>
        <briefdescription>
<para>Adjusts edge values using the standard PPM limiter (Colella &amp; Woodward, JCP 1984) after first checking that the edge values are bounded by neighbors cell averages and that the edge values are monotonic between cell averages. </para>        </briefdescription>
        <detaileddescription>
<para><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="in">h_neglect</parametername>
</parameternamelist>
<parameterdescription>
<para>A negligibly small width [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/PPM_functions.F90" line="62" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/PPM_functions.F90" bodystart="63" bodyend="127"/>
        <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>
        <referencedby refid="namespaceppm__functions_1a5c4e47be75ad413904902582b3d0d4a4" compoundref="PPM__functions_8F90" startline="29" endline="56">ppm_reconstruction</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespaceppm__functions_1ac8f382eb9d1f0df80aab9e07eb2ceebe" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public ppm_functions::ppm_boundary_extrapolation</definition>
        <argsstring>(N, h, u, edge_values, ppoly_coef, h_neglect)</argsstring>
        <name>ppm_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>
        <param>
          <type>h_neglect</type>
          <defname>h_neglect</defname>
        </param>
        <briefdescription>
<para>Reconstruction by parabolas within boundary cells. </para>        </briefdescription>
        <detaileddescription>
<para><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 values of piecewise polynomials [A]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">ppoly_coef</parametername>
</parameternamelist>
<parameterdescription>
<para>coefficients of piecewise polynomials, 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/PPM_functions.F90" line="133" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/PPM_functions.F90" bodystart="134" bodyend="284"/>
        <references refid="namespaceppm__functions_1a86e3d1a796b4934167d563eda5310a0e" compoundref="PPM__functions_8F90" startline="23" endline="23">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>
        <referencedby refid="namespacemom__remapping_1a5849f564453d5ed76fb4feffd41eca26" compoundref="MOM__remapping_8F90" startline="1617" endline="1883">mom_remapping::remapping_unit_tests</referencedby>
        <referencedby refid="namespacemom__ale_1a1920c7b1be73d2bf7c5afc29b1b1245b" compoundref="MOM__ALE_8F90" startline="1100" endline="1180">mom_ale::ts_ppm_edge_values</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Provides functions used with the Piecewise-Parabolic-Method in the vertical ALE algorithm. </para>    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/ALE/PPM_functions.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
