<?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.17">
  <compounddef id="namespacemom__tracer__advect" kind="namespace" language="Fortran">
    <compoundname>mom_tracer_advect</compoundname>
    <innerclass refid="structmom__tracer__advect_1_1tracer__advect__cs" prot="public">mom_tracer_advect::tracer_advect_cs</innerclass>
      <sectiondef kind="user-defined">
      <memberdef kind="variable" id="namespacemom__tracer__advect_1a951134d3dcb3508f71abb05dc39837cc" prot="public" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_tracer_advect::id_clock_advect</definition>
        <argsstring></argsstring>
        <name>id_clock_advect</name>
        <briefdescription>
<para>CPU time clocks. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" line="41" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" bodystart="41" bodyend="41"/>
        <referencedby refid="namespacemom__tracer__advect_1a28a6e28170a8d4f34337a1a202e0d902" compoundref="MOM__tracer__advect_8F90" startline="52" endline="331">advect_tracer</referencedby>
        <referencedby refid="namespacemom__tracer__advect_1aacf9cdc544c9c3a188d6e3e9a0d7b9df" compoundref="MOM__tracer__advect_8F90" startline="1070" endline="1120">tracer_advect_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__tracer__advect_1a6590ebd9b76b6d5fea6d13e2deb0c271" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_tracer_advect::id_clock_pass</definition>
        <argsstring></argsstring>
        <name>id_clock_pass</name>
        <briefdescription>
<para>CPU time clocks. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" line="42" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" bodystart="42" bodyend="42"/>
        <referencedby refid="namespacemom__tracer__advect_1a28a6e28170a8d4f34337a1a202e0d902" compoundref="MOM__tracer__advect_8F90" startline="52" endline="331">advect_tracer</referencedby>
        <referencedby refid="namespacemom__tracer__advect_1aacf9cdc544c9c3a188d6e3e9a0d7b9df" compoundref="MOM__tracer__advect_8F90" startline="1070" endline="1120">tracer_advect_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__tracer__advect_1a4f1598f314da682e38e10f560bb94428" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_tracer_advect::id_clock_sync</definition>
        <argsstring></argsstring>
        <name>id_clock_sync</name>
        <briefdescription>
<para>CPU time clocks. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" line="43" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" bodystart="43" bodyend="43"/>
        <referencedby refid="namespacemom__tracer__advect_1a28a6e28170a8d4f34337a1a202e0d902" compoundref="MOM__tracer__advect_8F90" startline="52" endline="331">advect_tracer</referencedby>
        <referencedby refid="namespacemom__tracer__advect_1aacf9cdc544c9c3a188d6e3e9a0d7b9df" compoundref="MOM__tracer__advect_8F90" startline="1070" endline="1120">tracer_advect_init</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__tracer__advect_1a28a6e28170a8d4f34337a1a202e0d902" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_tracer_advect::advect_tracer</definition>
        <argsstring>(h_end, uhtr, vhtr, OBC, dt, G, GV, US, CS, Reg, h_prev_opt, max_iter_in, x_first_in, uhr_out, vhr_out, h_out)</argsstring>
        <name>advect_tracer</name>
        <param>
          <type>h_end</type>
          <defname>h_end</defname>
        </param>
        <param>
          <type>uhtr</type>
          <defname>uhtr</defname>
        </param>
        <param>
          <type>vhtr</type>
          <defname>vhtr</defname>
        </param>
        <param>
          <type>OBC</type>
          <defname>OBC</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>Reg</type>
          <defname>Reg</defname>
        </param>
        <param>
          <type>h_prev_opt</type>
          <defname>h_prev_opt</defname>
        </param>
        <param>
          <type>max_iter_in</type>
          <defname>max_iter_in</defname>
        </param>
        <param>
          <type>x_first_in</type>
          <defname>x_first_in</defname>
        </param>
        <param>
          <type>uhr_out</type>
          <defname>uhr_out</defname>
        </param>
        <param>
          <type>vhr_out</type>
          <defname>vhr_out</defname>
        </param>
        <param>
          <type>h_out</type>
          <defname>h_out</defname>
        </param>
        <briefdescription>
<para>This routine time steps the tracer concentration using a monotonic, conservative, weakly diffusive scheme. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean vertical grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_end</parametername>
</parameternamelist>
<parameterdescription>
<para>layer thickness after advection [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">uhtr</parametername>
</parameternamelist>
<parameterdescription>
<para>accumulated volume/mass flux through zonal face [H L2 ~&gt; m3 or kg] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">vhtr</parametername>
</parameternamelist>
<parameterdescription>
<para>accumulated volume/mass flux through merid face [H L2 ~&gt; m3 or kg] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obc</parametername>
</parameternamelist>
<parameterdescription>
<para>specifies whether, where, and what OBCs are used </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>time increment [T ~&gt; s] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>control structure for module </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>reg</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to tracer registry </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_prev_opt</parametername>
</parameternamelist>
<parameterdescription>
<para>layer thickness before advection [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">max_iter_in</parametername>
</parameternamelist>
<parameterdescription>
<para>The maximum number of iterations </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">x_first_in</parametername>
</parameternamelist>
<parameterdescription>
<para>If present, indicate whether to update first in the x- or y-direction. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">uhr_out</parametername>
</parameternamelist>
<parameterdescription>
<para>accumulated volume/mass flux through zonal face </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">vhr_out</parametername>
</parameternamelist>
<parameterdescription>
<para>accumulated volume/mass flux through merid face </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">h_out</parametername>
</parameternamelist>
<parameterdescription>
<para>layer thickness before advection [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" line="50" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" bodystart="52" bodyend="331"/>
        <references refid="namespacemom__tracer__advect_1a07f6e664b3346db7f9ddbcd4b4d6c8f4" compoundref="MOM__tracer__advect_8F90" startline="339" endline="697">advect_x</references>
        <references refid="namespacemom__tracer__advect_1a20a82831fad6aa07cb946aeadbbfdda9" compoundref="MOM__tracer__advect_8F90" startline="704" endline="1065">advect_y</references>
        <references refid="namespacemom__domains_1aac3bc012a8c214cbd73bb00668ff165e" compoundref="MOM__domains_8F90" startline="1113" endline="1128">mom_domains::do_group_pass</references>
        <references refid="namespacemom__tracer__advect_1a951134d3dcb3508f71abb05dc39837cc" compoundref="MOM__tracer__advect_8F90" startline="41" endline="41">id_clock_advect</references>
        <references refid="namespacemom__tracer__advect_1a6590ebd9b76b6d5fea6d13e2deb0c271" compoundref="MOM__tracer__advect_8F90" startline="42" endline="42">id_clock_pass</references>
        <references refid="namespacemom__tracer__advect_1a4f1598f314da682e38e10f560bb94428" compoundref="MOM__tracer__advect_8F90" startline="43" endline="43">id_clock_sync</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <referencedby refid="namespacemom__offline__main_1ae85546d26ceb447742abe3c528cad2d7" compoundref="MOM__offline__main_8F90" startline="210" endline="415">mom_offline_main::offline_advection_ale</referencedby>
        <referencedby refid="namespacemom__offline__main_1a887d59c64eb269aad257eacc8cf30444" compoundref="MOM__offline__main_8F90" startline="846" endline="1013">mom_offline_main::offline_advection_layer</referencedby>
        <referencedby refid="namespacemom__offline__main_1a312c47e83e64a6bdf064526f77a8a8ec" compoundref="MOM__offline__main_8F90" startline="423" endline="614">mom_offline_main::offline_redistribute_residual</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__tracer__advect_1a07f6e664b3346db7f9ddbcd4b4d6c8f4" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_tracer_advect::advect_x</definition>
        <argsstring>(Tr, hprev, uhr, uh_neglect, OBC, domore_u, ntr, Idt, is, ie, js, je, k, G, GV, US, usePPM, useHuynh)</argsstring>
        <name>advect_x</name>
        <param>
          <type>Tr</type>
          <defname>Tr</defname>
        </param>
        <param>
          <type>hprev</type>
          <defname>hprev</defname>
        </param>
        <param>
          <type>uhr</type>
          <defname>uhr</defname>
        </param>
        <param>
          <type>uh_neglect</type>
          <defname>uh_neglect</defname>
        </param>
        <param>
          <type>OBC</type>
          <defname>OBC</defname>
        </param>
        <param>
          <type>domore_u</type>
          <defname>domore_u</defname>
        </param>
        <param>
          <type>ntr</type>
          <defname>ntr</defname>
        </param>
        <param>
          <type>Idt</type>
          <defname>Idt</defname>
        </param>
        <param>
          <type>is</type>
          <defname>is</defname>
        </param>
        <param>
          <type>ie</type>
          <defname>ie</defname>
        </param>
        <param>
          <type>js</type>
          <defname>js</defname>
        </param>
        <param>
          <type>je</type>
          <defname>je</defname>
        </param>
        <param>
          <type>k</type>
          <defname>k</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>usePPM</type>
          <defname>usePPM</defname>
        </param>
        <param>
          <type>useHuynh</type>
          <defname>useHuynh</defname>
        </param>
        <briefdescription>
<para>This subroutine does 1-d flux-form advection in the zonal direction using a monotonic piecewise linear scheme. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tr</parametername>
</parameternamelist>
<parameterdescription>
<para>The array of registered tracers to work on </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">hprev</parametername>
</parameternamelist>
<parameterdescription>
<para>cell volume at the end of previous tracer change [H L2 ~&gt; m3 or kg] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">uhr</parametername>
</parameternamelist>
<parameterdescription>
<para>accumulated volume/mass flux through the zonal face [H L2 ~&gt; m3 or kg] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">uh_neglect</parametername>
</parameternamelist>
<parameterdescription>
<para>A tiny zonal mass flux that can be neglected [H L2 ~&gt; m3 or kg] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obc</parametername>
</parameternamelist>
<parameterdescription>
<para>specifies whether, where, and what OBCs are used </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">domore_u</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, there is more advection to be done in this u-row </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">idt</parametername>
</parameternamelist>
<parameterdescription>
<para>The inverse of dt [T-1 ~&gt; s-1] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ntr</parametername>
</parameternamelist>
<parameterdescription>
<para>The number of tracers </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">is</parametername>
</parameternamelist>
<parameterdescription>
<para>The starting tracer i-index to work on </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ie</parametername>
</parameternamelist>
<parameterdescription>
<para>The ending tracer i-index to work on </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">js</parametername>
</parameternamelist>
<parameterdescription>
<para>The starting tracer j-index to work on </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">je</parametername>
</parameternamelist>
<parameterdescription>
<para>The ending tracer j-index to work on </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">k</parametername>
</parameternamelist>
<parameterdescription>
<para>The k-level to work on </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">useppm</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, use PPM instead of PLM </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">usehuynh</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, use the Huynh scheme for PPM interface values </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" line="337" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" bodystart="339" bodyend="697"/>
        <referencedby refid="namespacemom__tracer__advect_1a28a6e28170a8d4f34337a1a202e0d902" compoundref="MOM__tracer__advect_8F90" startline="52" endline="331">advect_tracer</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__tracer__advect_1a20a82831fad6aa07cb946aeadbbfdda9" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_tracer_advect::advect_y</definition>
        <argsstring>(Tr, hprev, vhr, vh_neglect, OBC, domore_v, ntr, Idt, is, ie, js, je, k, G, GV, US, usePPM, useHuynh)</argsstring>
        <name>advect_y</name>
        <param>
          <type>Tr</type>
          <defname>Tr</defname>
        </param>
        <param>
          <type>hprev</type>
          <defname>hprev</defname>
        </param>
        <param>
          <type>vhr</type>
          <defname>vhr</defname>
        </param>
        <param>
          <type>vh_neglect</type>
          <defname>vh_neglect</defname>
        </param>
        <param>
          <type>OBC</type>
          <defname>OBC</defname>
        </param>
        <param>
          <type>domore_v</type>
          <defname>domore_v</defname>
        </param>
        <param>
          <type>ntr</type>
          <defname>ntr</defname>
        </param>
        <param>
          <type>Idt</type>
          <defname>Idt</defname>
        </param>
        <param>
          <type>is</type>
          <defname>is</defname>
        </param>
        <param>
          <type>ie</type>
          <defname>ie</defname>
        </param>
        <param>
          <type>js</type>
          <defname>js</defname>
        </param>
        <param>
          <type>je</type>
          <defname>je</defname>
        </param>
        <param>
          <type>k</type>
          <defname>k</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>usePPM</type>
          <defname>usePPM</defname>
        </param>
        <param>
          <type>useHuynh</type>
          <defname>useHuynh</defname>
        </param>
        <briefdescription>
<para>This subroutine does 1-d flux-form advection using a monotonic piecewise linear scheme. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tr</parametername>
</parameternamelist>
<parameterdescription>
<para>The array of registered tracers to work on </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">hprev</parametername>
</parameternamelist>
<parameterdescription>
<para>cell volume at the end of previous tracer change [H L2 ~&gt; m3 or kg] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">vhr</parametername>
</parameternamelist>
<parameterdescription>
<para>accumulated volume/mass flux through the meridional face [H L2 ~&gt; m3 or kg] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">vh_neglect</parametername>
</parameternamelist>
<parameterdescription>
<para>A tiny meridional mass flux that can be neglected [H L2 ~&gt; m3 or kg] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obc</parametername>
</parameternamelist>
<parameterdescription>
<para>specifies whether, where, and what OBCs are used </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">domore_v</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, there is more advection to be done in this v-row </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">idt</parametername>
</parameternamelist>
<parameterdescription>
<para>The inverse of dt [T-1 ~&gt; s-1] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ntr</parametername>
</parameternamelist>
<parameterdescription>
<para>The number of tracers </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">is</parametername>
</parameternamelist>
<parameterdescription>
<para>The starting tracer i-index to work on </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ie</parametername>
</parameternamelist>
<parameterdescription>
<para>The ending tracer i-index to work on </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">js</parametername>
</parameternamelist>
<parameterdescription>
<para>The starting tracer j-index to work on </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">je</parametername>
</parameternamelist>
<parameterdescription>
<para>The ending tracer j-index to work on </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">k</parametername>
</parameternamelist>
<parameterdescription>
<para>The k-level to work on </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">useppm</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, use PPM instead of PLM </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">usehuynh</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, use the Huynh scheme for PPM interface values </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" line="702" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" bodystart="704" bodyend="1065"/>
        <referencedby refid="namespacemom__tracer__advect_1a28a6e28170a8d4f34337a1a202e0d902" compoundref="MOM__tracer__advect_8F90" startline="52" endline="331">advect_tracer</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__tracer__advect_1aacf9cdc544c9c3a188d6e3e9a0d7b9df" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_tracer_advect::tracer_advect_init</definition>
        <argsstring>(Time, G, US, param_file, diag, CS)</argsstring>
        <name>tracer_advect_init</name>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>diag</type>
          <defname>diag</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Initialize lateral tracer advection module. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">time</parametername>
</parameternamelist>
<parameterdescription>
<para>current model time </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>open file to parse for model parameters </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">diag</parametername>
</parameternamelist>
<parameterdescription>
<para>regulates diagnostic output </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>module control structure </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" line="1069" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" bodystart="1070" bodyend="1120"/>
        <references refid="namespacemom__tracer__advect_1a951134d3dcb3508f71abb05dc39837cc" compoundref="MOM__tracer__advect_8F90" startline="41" endline="41">id_clock_advect</references>
        <references refid="namespacemom__tracer__advect_1a6590ebd9b76b6d5fea6d13e2deb0c271" compoundref="MOM__tracer__advect_8F90" startline="42" endline="42">id_clock_pass</references>
        <references refid="namespacemom__tracer__advect_1a4f1598f314da682e38e10f560bb94428" compoundref="MOM__tracer__advect_8F90" startline="43" endline="43">id_clock_sync</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__tracer__advect_1a2e466a8a34546bb9265a74ff0209df47" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_tracer_advect::tracer_advect_end</definition>
        <argsstring>(CS)</argsstring>
        <name>tracer_advect_end</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Close the tracer advection module. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>module control structure </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" line="1124" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" bodystart="1125" bodyend="1128"/>
        <referencedby refid="namespacemom_1ae6dad976fb4be1c7ba7fc1aff809616b" compoundref="MOM_8F90" startline="3486" endline="3525">mom::mom_end</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>This module contains the subroutines that advect tracers along coordinate surfaces. </para>
    </briefdescription>
    <detaileddescription>
<para>This program contains the subroutines that advect tracers horizontally (i.e. along layers).</para>
<sect1 id="namespacemom__tracer__advect_1section_mom_advect_intro">
<title>section_mom_advect_intro</title>
<para><itemizedlist>
<listitem><para>advect_tracer advects tracer concentrations using a combination of the modified flux advection scheme from Easter (Mon. Wea. Rev., 1993) with tracer distributions given by the monotonic modified van Leer scheme proposed by Lin et al. (Mon. Wea. Rev., 1994). This scheme conserves the total amount of tracer while avoiding spurious maxima and minima of the tracer concentration. If a higher order accuracy scheme is needed, suggest monotonic piecewise parabolic method, as described in Carpenter et al. (MWR, 1990).</para>
</listitem><listitem><para>advect_tracer has 4 arguments, described below. This subroutine determines the volume of a layer in a grid cell at the previous instance when the tracer concentration was changed, so it is essential that the volume fluxes should be correct. It is also important that the tracer advection occurs before each calculation of the diabatic forcing. </para>
</listitem></itemizedlist>
</para>
</sect1>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_advect.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
