<?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="namespacemom__diabatic__driver" kind="namespace" language="Fortran">
    <compoundname>mom_diabatic_driver</compoundname>
    <innerclass refid="structmom__diabatic__driver_1_1diabatic__cs" prot="public">mom_diabatic_driver::diabatic_cs</innerclass>
      <sectiondef kind="user-defined">
      <memberdef kind="variable" id="namespacemom__diabatic__driver_1ac0824d4ab23eb0cff642acd5b40f38cf" prot="public" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_diabatic_driver::id_clock_entrain</definition>
        <argsstring></argsstring>
        <name>id_clock_entrain</name>
        <briefdescription>
<para>clock ids </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="251" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="251" bodyend="251"/>
        <referencedby refid="namespacemom__diabatic__driver_1a51d273bae7e5d2217fa5498620532888" compoundref="MOM__diabatic__driver_8F90" startline="3147" endline="3727">diabatic_driver_init</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">layered_diabatic</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__diabatic__driver_1a64b9dbea706cd013f6541f4240fb1133" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_diabatic_driver::id_clock_mixedlayer</definition>
        <argsstring></argsstring>
        <name>id_clock_mixedlayer</name>
        <briefdescription>
<para>clock ids </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="251" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="251" bodyend="-1"/>
        <referencedby refid="namespacemom__diabatic__driver_1a51d273bae7e5d2217fa5498620532888" compoundref="MOM__diabatic__driver_8F90" startline="3147" endline="3727">diabatic_driver_init</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">layered_diabatic</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__diabatic__driver_1a34d2b3a2764fe2337a4701bc63ba2cb9" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_diabatic_driver::id_clock_set_diffusivity</definition>
        <argsstring></argsstring>
        <name>id_clock_set_diffusivity</name>
        <briefdescription>
<para>clock ids </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="251" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="251" bodyend="-1"/>
        <referencedby refid="namespacemom__diabatic__driver_1ada12cae1e63c6aa56775f1a235b7db95" compoundref="MOM__diabatic__driver_8F90" startline="263" endline="445">diabatic</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">diabatic_ale</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" compoundref="MOM__diabatic__driver_8F90" startline="453" endline="1165">diabatic_ale_legacy</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a51d273bae7e5d2217fa5498620532888" compoundref="MOM__diabatic__driver_8F90" startline="3147" endline="3727">diabatic_driver_init</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">layered_diabatic</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__diabatic__driver_1aee5d35fe0a4026b135359b9f765f5fd3" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_diabatic_driver::id_clock_tracers</definition>
        <argsstring></argsstring>
        <name>id_clock_tracers</name>
        <briefdescription>
<para>clock ids </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="252" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="252" bodyend="252"/>
        <referencedby refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">diabatic_ale</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" compoundref="MOM__diabatic__driver_8F90" startline="453" endline="1165">diabatic_ale_legacy</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a51d273bae7e5d2217fa5498620532888" compoundref="MOM__diabatic__driver_8F90" startline="3147" endline="3727">diabatic_driver_init</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">layered_diabatic</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__diabatic__driver_1a0e5ed4eea2273ac3f3b73bd20235801d" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_diabatic_driver::id_clock_tridiag</definition>
        <argsstring></argsstring>
        <name>id_clock_tridiag</name>
        <briefdescription>
<para>clock ids </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="252" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="252" bodyend="-1"/>
        <referencedby refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">diabatic_ale</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" compoundref="MOM__diabatic__driver_8F90" startline="453" endline="1165">diabatic_ale_legacy</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a51d273bae7e5d2217fa5498620532888" compoundref="MOM__diabatic__driver_8F90" startline="3147" endline="3727">diabatic_driver_init</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">layered_diabatic</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__diabatic__driver_1a0e4dcc94de5ad908253905f1d0f9c1c8" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_diabatic_driver::id_clock_pass</definition>
        <argsstring></argsstring>
        <name>id_clock_pass</name>
        <briefdescription>
<para>clock ids </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="252" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="252" bodyend="-1"/>
        <referencedby refid="namespacemom__diabatic__driver_1ada12cae1e63c6aa56775f1a235b7db95" compoundref="MOM__diabatic__driver_8F90" startline="263" endline="445">diabatic</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">diabatic_ale</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a51d273bae7e5d2217fa5498620532888" compoundref="MOM__diabatic__driver_8F90" startline="3147" endline="3727">diabatic_driver_init</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">layered_diabatic</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__diabatic__driver_1aec621b79c9fbf1cda2b82ce42eb25339" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_diabatic_driver::id_clock_sponge</definition>
        <argsstring></argsstring>
        <name>id_clock_sponge</name>
        <briefdescription>
<para>clock ids </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="252" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="252" bodyend="-1"/>
        <referencedby refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">diabatic_ale</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" compoundref="MOM__diabatic__driver_8F90" startline="453" endline="1165">diabatic_ale_legacy</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a51d273bae7e5d2217fa5498620532888" compoundref="MOM__diabatic__driver_8F90" startline="3147" endline="3727">diabatic_driver_init</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">layered_diabatic</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__diabatic__driver_1a24bf3b09c5e211c2bb42668cd946dd5a" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_diabatic_driver::id_clock_geothermal</definition>
        <argsstring></argsstring>
        <name>id_clock_geothermal</name>
        <briefdescription>
<para>clock ids </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="253" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="253" bodyend="253"/>
        <referencedby refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">diabatic_ale</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" compoundref="MOM__diabatic__driver_8F90" startline="453" endline="1165">diabatic_ale_legacy</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a51d273bae7e5d2217fa5498620532888" compoundref="MOM__diabatic__driver_8F90" startline="3147" endline="3727">diabatic_driver_init</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">layered_diabatic</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__diabatic__driver_1a95ee7992059c89735b7f6ef437eee13f" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_diabatic_driver::id_clock_differential_diff</definition>
        <argsstring></argsstring>
        <name>id_clock_differential_diff</name>
        <briefdescription>
<para>clock ids </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="253" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="253" bodyend="-1"/>
        <referencedby refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">diabatic_ale</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" compoundref="MOM__diabatic__driver_8F90" startline="453" endline="1165">diabatic_ale_legacy</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a51d273bae7e5d2217fa5498620532888" compoundref="MOM__diabatic__driver_8F90" startline="3147" endline="3727">diabatic_driver_init</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">layered_diabatic</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__diabatic__driver_1a812f6ee12f2449c3ce656c7f14aa882e" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_diabatic_driver::id_clock_remap</definition>
        <argsstring></argsstring>
        <name>id_clock_remap</name>
        <briefdescription>
<para>clock ids </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="253" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="253" bodyend="-1"/>
        <referencedby refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">diabatic_ale</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" compoundref="MOM__diabatic__driver_8F90" startline="453" endline="1165">diabatic_ale_legacy</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a51d273bae7e5d2217fa5498620532888" compoundref="MOM__diabatic__driver_8F90" startline="3147" endline="3727">diabatic_driver_init</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">layered_diabatic</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__diabatic__driver_1a6b41dac58aa5c518f1affcf4423a7fb4" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_diabatic_driver::id_clock_kpp</definition>
        <argsstring></argsstring>
        <name>id_clock_kpp</name>
        <briefdescription>
<para>clock ids </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="254" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="254" bodyend="254"/>
        <referencedby refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">diabatic_ale</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" compoundref="MOM__diabatic__driver_8F90" startline="453" endline="1165">diabatic_ale_legacy</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a51d273bae7e5d2217fa5498620532888" compoundref="MOM__diabatic__driver_8F90" startline="3147" endline="3727">diabatic_driver_init</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">layered_diabatic</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__diabatic__driver_1ada12cae1e63c6aa56775f1a235b7db95" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_driver::diabatic</definition>
        <argsstring>(u, v, h, tv, Hml, fluxes, visc, ADp, CDp, dt, Time_end, G, GV, US, CS, OBC, WAVES)</argsstring>
        <name>diabatic</name>
        <param>
          <type>u</type>
          <defname>u</defname>
        </param>
        <param>
          <type>v</type>
          <defname>v</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>Hml</type>
          <defname>Hml</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <param>
          <type>visc</type>
          <defname>visc</defname>
        </param>
        <param>
          <type>ADp</type>
          <defname>ADp</defname>
        </param>
        <param>
          <type>CDp</type>
          <defname>CDp</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>Time_end</type>
          <defname>Time_end</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>OBC</type>
          <defname>OBC</defname>
        </param>
        <param>
          <type>WAVES</type>
          <defname>WAVES</defname>
        </param>
        <briefdescription>
<para>This subroutine imposes the diapycnal mass fluxes and the accompanying diapycnal advection of momentum and tracers. </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="inout">u</parametername>
</parameternamelist>
<parameterdescription>
<para>zonal velocity [L T-1 ~&gt; m s-1]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">v</parametername>
</parameternamelist>
<parameterdescription>
<para>meridional velocity [L T-1 ~&gt; m s-1]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">h</parametername>
</parameternamelist>
<parameterdescription>
<para>thickness [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>points to thermodynamic fields unused have NULL ptrs</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>hml</parametername>
</parameternamelist>
<parameterdescription>
<para>Active mixed layer depth [Z ~&gt; m]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>points to forcing fields unused fields have NULL ptrs</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">visc</parametername>
</parameternamelist>
<parameterdescription>
<para>vertical viscosities, BBL properies, and</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">adp</parametername>
</parameternamelist>
<parameterdescription>
<para>related points to accelerations in momentum equations, to enable the later derived diagnostics, like energy budgets</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">cdp</parametername>
</parameternamelist>
<parameterdescription>
<para>points to terms in continuity equations</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">time_end</parametername>
</parameternamelist>
<parameterdescription>
<para>Time at the end of the interval</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>module control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obc</parametername>
</parameternamelist>
<parameterdescription>
<para>Open boundaries control structure.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>waves</parametername>
</parameternamelist>
<parameterdescription>
<para>Surface gravity waves </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="261" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="263" bodyend="445"/>
        <references refid="namespacemom__error__handler_1a34a02e601a60f03cb97a72fe25a32853" compoundref="MOM__error__handler_8F90" startline="161" endline="177">mom_error_handler::calltree_waypoint</references>
        <references refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">diabatic_ale</references>
        <references refid="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" compoundref="MOM__diabatic__driver_8F90" startline="453" endline="1165">diabatic_ale_legacy</references>
        <references refid="namespacemom__diabatic__driver_1af79993410fea86ff69ef417396798bac" compoundref="MOM__diabatic__driver_8F90" startline="3063" endline="3106">diagnose_frazil_tendency</references>
        <references refid="namespacemom__diapyc__energy__req_1a0bf0dd1f3ae4f7f66fb000322f18064e" compoundref="MOM__diapyc__energy__req_8F90" startline="50" endline="111">mom_diapyc_energy_req::diapyc_energy_req_test</references>
        <references refid="namespacemom__diabatic__driver_1a0e4dcc94de5ad908253905f1d0f9c1c8" compoundref="MOM__diabatic__driver_8F90" startline="252">id_clock_pass</references>
        <references refid="namespacemom__diabatic__driver_1a34d2b3a2764fe2337a4701bc63ba2cb9" compoundref="MOM__diabatic__driver_8F90" startline="251">id_clock_set_diffusivity</references>
        <references refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">layered_diabatic</references>
        <references refid="namespacemom__checksum__packages_1a6d09d11c188659dd5ebd0b36fc42aa2b" compoundref="MOM__checksum__packages_8F90" startline="240" endline="374">mom_checksum_packages::mom_state_stats</references>
        <references refid="namespacemom__time__manager_1ae2d8736d03ab62310f32ddf01e44a961" compoundref="MOM__time__manager_8F90" startline="47" endline="60">mom_time_manager::real_to_time</references>
        <references refid="namespacemom__wave__speed_1a4e969f10d0cdd765f6804973a74ff479" compoundref="MOM__wave__speed_8F90" startline="642" endline="1138">mom_wave_speed::wave_speeds</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_diabatic_driver::diabatic_ale_legacy</definition>
        <argsstring>(u, v, h, tv, Hml, fluxes, visc, ADp, CDp, dt, Time_end, G, GV, US, CS, Waves)</argsstring>
        <name>diabatic_ale_legacy</name>
        <param>
          <type>u</type>
          <defname>u</defname>
        </param>
        <param>
          <type>v</type>
          <defname>v</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>Hml</type>
          <defname>Hml</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <param>
          <type>visc</type>
          <defname>visc</defname>
        </param>
        <param>
          <type>ADp</type>
          <defname>ADp</defname>
        </param>
        <param>
          <type>CDp</type>
          <defname>CDp</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>Time_end</type>
          <defname>Time_end</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>Waves</type>
          <defname>Waves</defname>
        </param>
        <briefdescription>
<para>Applies diabatic forcing and diapycnal mixing of temperature, salinity and other tracers for use with an ALE algorithm. This version uses an older set of algorithms compared with diabatic_ALE. </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">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">u</parametername>
</parameternamelist>
<parameterdescription>
<para>zonal velocity [L T-1 ~&gt; m s-1]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">v</parametername>
</parameternamelist>
<parameterdescription>
<para>meridional velocity [L T-1 ~&gt; m s-1]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">h</parametername>
</parameternamelist>
<parameterdescription>
<para>thickness [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>points to thermodynamic fields unused have NULL ptrs</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>hml</parametername>
</parameternamelist>
<parameterdescription>
<para>Active mixed layer depth [Z ~&gt; m]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>points to forcing fields unused fields have NULL ptrs</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">visc</parametername>
</parameternamelist>
<parameterdescription>
<para>vertical viscosities, BBL properies, and</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">adp</parametername>
</parameternamelist>
<parameterdescription>
<para>related points to accelerations in momentum equations, to enable the later derived diagnostics, like energy budgets</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">cdp</parametername>
</parameternamelist>
<parameterdescription>
<para>points to terms in continuity equations</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">time_end</parametername>
</parameternamelist>
<parameterdescription>
<para>Time at the end of the interval</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>module control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>waves</parametername>
</parameternamelist>
<parameterdescription>
<para>Surface gravity waves </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="451" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="453" bodyend="1165"/>
        <references refid="namespacemom__ale__sponge_1a1f297a8680a56b92ad1ac4e09f375d05" compoundref="MOM__ALE__sponge_8F90" startline="788" endline="1001">mom_ale_sponge::apply_ale_sponge</references>
        <references refid="namespacemom__cvmix__conv_1ace5bb8e12704ee4d46e4cfb67e6f63f8" compoundref="MOM__CVMix__conv_8F90" startline="143" endline="299">mom_cvmix_conv::calculate_cvmix_conv</references>
        <references refid="namespacemom__forcing__type_1ae84373c4a259bd04330ec673af0fa536" compoundref="MOM__forcing__type_8F90" startline="986" endline="1016">mom_forcing_type::calculatebuoyancyflux2d</references>
        <references refid="namespacemom__tracer__flow__control_1ae4af301529462d180014b52d0ceea67c" compoundref="MOM__tracer__flow__control_8F90" startline="381" endline="537">mom_tracer_flow_control::call_tracer_column_fns</references>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</references>
        <references refid="namespacemom__error__handler_1a34a02e601a60f03cb97a72fe25a32853" compoundref="MOM__error__handler_8F90" startline="161" endline="177">mom_error_handler::calltree_waypoint</references>
        <references refid="namespacemom__diabatic__driver_1a9a32fd213024239e5818f0bd88764761" compoundref="MOM__diabatic__driver_8F90" startline="2966" endline="3054">diagnose_boundary_forcing_tendency</references>
        <references refid="namespacemom__diabatic__driver_1af0aa2526c1824517fe5cdae65b48abd9" compoundref="MOM__diabatic__driver_8F90" startline="2873" endline="2956">diagnose_diabatic_diff_tendency</references>
        <references refid="namespacemom__energetic__pbl_1af3a7ca5357ed9a1383c9556b117116dc" compoundref="MOM__energetic__PBL_8F90" startline="1952" endline="1967">mom_energetic_pbl::energetic_pbl_get_mld</references>
        <references refid="namespacemom__diabatic__driver_1a95ee7992059c89735b7f6ef437eee13f" compoundref="MOM__diabatic__driver_8F90" startline="253">id_clock_differential_diff</references>
        <references refid="namespacemom__diabatic__driver_1a24bf3b09c5e211c2bb42668cd946dd5a" compoundref="MOM__diabatic__driver_8F90" startline="253" endline="253">id_clock_geothermal</references>
        <references refid="namespacemom__diabatic__driver_1a6b41dac58aa5c518f1affcf4423a7fb4" compoundref="MOM__diabatic__driver_8F90" startline="254" endline="254">id_clock_kpp</references>
        <references refid="namespacemom__diabatic__driver_1a812f6ee12f2449c3ce656c7f14aa882e" compoundref="MOM__diabatic__driver_8F90" startline="253">id_clock_remap</references>
        <references refid="namespacemom__diabatic__driver_1a34d2b3a2764fe2337a4701bc63ba2cb9" compoundref="MOM__diabatic__driver_8F90" startline="251">id_clock_set_diffusivity</references>
        <references refid="namespacemom__diabatic__driver_1aec621b79c9fbf1cda2b82ce42eb25339" compoundref="MOM__diabatic__driver_8F90" startline="252">id_clock_sponge</references>
        <references refid="namespacemom__diabatic__driver_1aee5d35fe0a4026b135359b9f765f5fd3" compoundref="MOM__diabatic__driver_8F90" startline="252" endline="252">id_clock_tracers</references>
        <references refid="namespacemom__diabatic__driver_1a0e5ed4eea2273ac3f3b73bd20235801d" compoundref="MOM__diabatic__driver_8F90" startline="252">id_clock_tridiag</references>
        <references refid="namespacemom__cvmix__kpp_1abebacc1ae8c13149d816a60ff2e824b6" compoundref="MOM__CVMix__KPP_8F90" startline="1452" endline="1506">mom_cvmix_kpp::kpp_nonlocaltransport_saln</references>
        <references refid="namespacemom__cvmix__kpp_1a54093ca1cac897785c965c00efa12fe6" compoundref="MOM__CVMix__KPP_8F90" startline="1390" endline="1445">mom_cvmix_kpp::kpp_nonlocaltransport_temp</references>
        <references refid="namespacemom__checksum__packages_1a6d09d11c188659dd5ebd0b36fc42aa2b" compoundref="MOM__checksum__packages_8F90" startline="240" endline="374">mom_checksum_packages::mom_state_stats</references>
        <references refid="namespacemom__variables_1a3a49e8f236529824956f8c5c3e147893" compoundref="MOM__variables_8F90" startline="534" endline="550">mom_variables::mom_thermovar_chksum</references>
        <references refid="namespacemom__opacity_1a349c6934f113d238e4e2ef229b931a0c" compoundref="MOM__opacity_8F90" startline="494" endline="498">mom_opacity::optics_nbands</references>
        <references refid="namespacemom__diabatic__aux_1adce369573ff355b820320d9c3b048693" compoundref="MOM__diabatic__aux_8F90" startline="531" endline="585">mom_diabatic_aux::set_pen_shortwave</references>
        <references refid="namespacemom__tracer__diabatic_1ac5d57973547cc4ed3a89808d3910943e" compoundref="MOM__tracer__diabatic_8F90" startline="27" endline="222">mom_tracer_diabatic::tracer_vertdiff</references>
        <referencedby refid="namespacemom__diabatic__driver_1ada12cae1e63c6aa56775f1a235b7db95" compoundref="MOM__diabatic__driver_8F90" startline="263" endline="445">diabatic</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_diabatic_driver::diabatic_ale</definition>
        <argsstring>(u, v, h, tv, Hml, fluxes, visc, ADp, CDp, dt, Time_end, G, GV, US, CS, Waves)</argsstring>
        <name>diabatic_ale</name>
        <param>
          <type>u</type>
          <defname>u</defname>
        </param>
        <param>
          <type>v</type>
          <defname>v</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>Hml</type>
          <defname>Hml</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <param>
          <type>visc</type>
          <defname>visc</defname>
        </param>
        <param>
          <type>ADp</type>
          <defname>ADp</defname>
        </param>
        <param>
          <type>CDp</type>
          <defname>CDp</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>Time_end</type>
          <defname>Time_end</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>Waves</type>
          <defname>Waves</defname>
        </param>
        <briefdescription>
<para>This subroutine imposes the diapycnal mass fluxes and the accompanying diapycnal advection of momentum and tracers. </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">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">u</parametername>
</parameternamelist>
<parameterdescription>
<para>zonal velocity [L T-1 ~&gt; m s-1]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">v</parametername>
</parameternamelist>
<parameterdescription>
<para>meridional velocity [L T-1 ~&gt; m s-1]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">h</parametername>
</parameternamelist>
<parameterdescription>
<para>thickness [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>points to thermodynamic fields unused have NULL ptrs</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>hml</parametername>
</parameternamelist>
<parameterdescription>
<para>Active mixed layer depth [Z ~&gt; m]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>points to forcing fields unused fields have NULL ptrs</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">visc</parametername>
</parameternamelist>
<parameterdescription>
<para>vertical viscosities, BBL properies, and</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">adp</parametername>
</parameternamelist>
<parameterdescription>
<para>related points to accelerations in momentum equations, to enable the later derived diagnostics, like energy budgets</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">cdp</parametername>
</parameternamelist>
<parameterdescription>
<para>points to terms in continuity equations</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">time_end</parametername>
</parameternamelist>
<parameterdescription>
<para>Time at the end of the interval</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>module control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>waves</parametername>
</parameternamelist>
<parameterdescription>
<para>Surface gravity waves </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="1171" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="1173" bodyend="1848"/>
        <references refid="namespacemom__ale__sponge_1a1f297a8680a56b92ad1ac4e09f375d05" compoundref="MOM__ALE__sponge_8F90" startline="788" endline="1001">mom_ale_sponge::apply_ale_sponge</references>
        <references refid="namespacemom__cvmix__conv_1ace5bb8e12704ee4d46e4cfb67e6f63f8" compoundref="MOM__CVMix__conv_8F90" startline="143" endline="299">mom_cvmix_conv::calculate_cvmix_conv</references>
        <references refid="namespacemom__forcing__type_1ae84373c4a259bd04330ec673af0fa536" compoundref="MOM__forcing__type_8F90" startline="986" endline="1016">mom_forcing_type::calculatebuoyancyflux2d</references>
        <references refid="namespacemom__tracer__flow__control_1ae4af301529462d180014b52d0ceea67c" compoundref="MOM__tracer__flow__control_8F90" startline="381" endline="537">mom_tracer_flow_control::call_tracer_column_fns</references>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</references>
        <references refid="namespacemom__error__handler_1a34a02e601a60f03cb97a72fe25a32853" compoundref="MOM__error__handler_8F90" startline="161" endline="177">mom_error_handler::calltree_waypoint</references>
        <references refid="namespacemom__diabatic__driver_1a9a32fd213024239e5818f0bd88764761" compoundref="MOM__diabatic__driver_8F90" startline="2966" endline="3054">diagnose_boundary_forcing_tendency</references>
        <references refid="namespacemom__diabatic__driver_1af0aa2526c1824517fe5cdae65b48abd9" compoundref="MOM__diabatic__driver_8F90" startline="2873" endline="2956">diagnose_diabatic_diff_tendency</references>
        <references refid="namespacemom__domains_1aac3bc012a8c214cbd73bb00668ff165e" compoundref="MOM__domains_8F90" startline="1113" endline="1128">mom_domains::do_group_pass</references>
        <references refid="namespacemom__energetic__pbl_1af3a7ca5357ed9a1383c9556b117116dc" compoundref="MOM__energetic__PBL_8F90" startline="1952" endline="1967">mom_energetic_pbl::energetic_pbl_get_mld</references>
        <references refid="namespacemom__diabatic__driver_1a95ee7992059c89735b7f6ef437eee13f" compoundref="MOM__diabatic__driver_8F90" startline="253">id_clock_differential_diff</references>
        <references refid="namespacemom__diabatic__driver_1a24bf3b09c5e211c2bb42668cd946dd5a" compoundref="MOM__diabatic__driver_8F90" startline="253" endline="253">id_clock_geothermal</references>
        <references refid="namespacemom__diabatic__driver_1a6b41dac58aa5c518f1affcf4423a7fb4" compoundref="MOM__diabatic__driver_8F90" startline="254" endline="254">id_clock_kpp</references>
        <references refid="namespacemom__diabatic__driver_1a0e4dcc94de5ad908253905f1d0f9c1c8" compoundref="MOM__diabatic__driver_8F90" startline="252">id_clock_pass</references>
        <references refid="namespacemom__diabatic__driver_1a812f6ee12f2449c3ce656c7f14aa882e" compoundref="MOM__diabatic__driver_8F90" startline="253">id_clock_remap</references>
        <references refid="namespacemom__diabatic__driver_1a34d2b3a2764fe2337a4701bc63ba2cb9" compoundref="MOM__diabatic__driver_8F90" startline="251">id_clock_set_diffusivity</references>
        <references refid="namespacemom__diabatic__driver_1aec621b79c9fbf1cda2b82ce42eb25339" compoundref="MOM__diabatic__driver_8F90" startline="252">id_clock_sponge</references>
        <references refid="namespacemom__diabatic__driver_1aee5d35fe0a4026b135359b9f765f5fd3" compoundref="MOM__diabatic__driver_8F90" startline="252" endline="252">id_clock_tracers</references>
        <references refid="namespacemom__diabatic__driver_1a0e5ed4eea2273ac3f3b73bd20235801d" compoundref="MOM__diabatic__driver_8F90" startline="252">id_clock_tridiag</references>
        <references refid="namespacemom__cvmix__kpp_1abebacc1ae8c13149d816a60ff2e824b6" compoundref="MOM__CVMix__KPP_8F90" startline="1452" endline="1506">mom_cvmix_kpp::kpp_nonlocaltransport_saln</references>
        <references refid="namespacemom__cvmix__kpp_1a54093ca1cac897785c965c00efa12fe6" compoundref="MOM__CVMix__KPP_8F90" startline="1390" endline="1445">mom_cvmix_kpp::kpp_nonlocaltransport_temp</references>
        <references refid="namespacemom__checksum__packages_1a6d09d11c188659dd5ebd0b36fc42aa2b" compoundref="MOM__checksum__packages_8F90" startline="240" endline="374">mom_checksum_packages::mom_state_stats</references>
        <references refid="namespacemom__variables_1a3a49e8f236529824956f8c5c3e147893" compoundref="MOM__variables_8F90" startline="534" endline="550">mom_variables::mom_thermovar_chksum</references>
        <references refid="namespacemom__opacity_1a349c6934f113d238e4e2ef229b931a0c" compoundref="MOM__opacity_8F90" startline="494" endline="498">mom_opacity::optics_nbands</references>
        <references refid="namespacemom__diabatic__aux_1adce369573ff355b820320d9c3b048693" compoundref="MOM__diabatic__aux_8F90" startline="531" endline="585">mom_diabatic_aux::set_pen_shortwave</references>
        <references refid="namespacemom__tracer__diabatic_1ac5d57973547cc4ed3a89808d3910943e" compoundref="MOM__tracer__diabatic_8F90" startline="27" endline="222">mom_tracer_diabatic::tracer_vertdiff</references>
        <referencedby refid="namespacemom__diabatic__driver_1ada12cae1e63c6aa56775f1a235b7db95" compoundref="MOM__diabatic__driver_8F90" startline="263" endline="445">diabatic</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_diabatic_driver::layered_diabatic</definition>
        <argsstring>(u, v, h, tv, Hml, fluxes, visc, ADp, CDp, dt, Time_end, G, GV, US, CS, WAVES)</argsstring>
        <name>layered_diabatic</name>
        <param>
          <type>u</type>
          <defname>u</defname>
        </param>
        <param>
          <type>v</type>
          <defname>v</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>Hml</type>
          <defname>Hml</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <param>
          <type>visc</type>
          <defname>visc</defname>
        </param>
        <param>
          <type>ADp</type>
          <defname>ADp</defname>
        </param>
        <param>
          <type>CDp</type>
          <defname>CDp</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>Time_end</type>
          <defname>Time_end</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>WAVES</type>
          <defname>WAVES</defname>
        </param>
        <briefdescription>
<para>Imposes the diapycnal mass fluxes and the accompanying diapycnal advection of momentum and tracers using the original MOM6 algorithms. </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">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">u</parametername>
</parameternamelist>
<parameterdescription>
<para>zonal velocity [L T-1 ~&gt; m s-1]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">v</parametername>
</parameternamelist>
<parameterdescription>
<para>meridional velocity [L T-1 ~&gt; m s-1]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">h</parametername>
</parameternamelist>
<parameterdescription>
<para>thickness [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>points to thermodynamic fields unused have NULL ptrs</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>hml</parametername>
</parameternamelist>
<parameterdescription>
<para>Active mixed layer depth [Z ~&gt; m]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>points to forcing fields unused fields have NULL ptrs</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">visc</parametername>
</parameternamelist>
<parameterdescription>
<para>vertical viscosities, BBL properies, and</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">adp</parametername>
</parameternamelist>
<parameterdescription>
<para>related points to accelerations in momentum equations, to enable the later derived diagnostics, like energy budgets</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">cdp</parametername>
</parameternamelist>
<parameterdescription>
<para>points to terms in continuity equations</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">time_end</parametername>
</parameternamelist>
<parameterdescription>
<para>Time at the end of the interval</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>module control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>waves</parametername>
</parameternamelist>
<parameterdescription>
<para>Surface gravity waves </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="1853" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="1855" bodyend="2812"/>
        <references refid="namespacemom__sponge_1a0b8b22a1b577bdcf336c8d22b85b45d7" compoundref="MOM__sponge_8F90" startline="324" endline="588">mom_sponge::apply_sponge</references>
        <references refid="namespacemom__bulk__mixed__layer_1ad6b69cad68bd88aa1deee0481fd3cc59" compoundref="MOM__bulk__mixed__layer_8F90" startline="190" endline="798">mom_bulk_mixed_layer::bulkmixedlayer</references>
        <references refid="namespacemom__cvmix__conv_1ace5bb8e12704ee4d46e4cfb67e6f63f8" compoundref="MOM__CVMix__conv_8F90" startline="143" endline="299">mom_cvmix_conv::calculate_cvmix_conv</references>
        <references refid="namespacemom__forcing__type_1ae84373c4a259bd04330ec673af0fa536" compoundref="MOM__forcing__type_8F90" startline="986" endline="1016">mom_forcing_type::calculatebuoyancyflux2d</references>
        <references refid="namespacemom__tracer__flow__control_1ae4af301529462d180014b52d0ceea67c" compoundref="MOM__tracer__flow__control_8F90" startline="381" endline="537">mom_tracer_flow_control::call_tracer_column_fns</references>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</references>
        <references refid="namespacemom__error__handler_1a34a02e601a60f03cb97a72fe25a32853" compoundref="MOM__error__handler_8F90" startline="161" endline="177">mom_error_handler::calltree_waypoint</references>
        <references refid="namespacemom__diabatic__driver_1af0aa2526c1824517fe5cdae65b48abd9" compoundref="MOM__diabatic__driver_8F90" startline="2873" endline="2956">diagnose_diabatic_diff_tendency</references>
        <references refid="namespacemom__domains_1aac3bc012a8c214cbd73bb00668ff165e" compoundref="MOM__domains_8F90" startline="1113" endline="1128">mom_domains::do_group_pass</references>
        <references refid="namespacemom__eos_1a782d326108e390902e520efc078e8296" compoundref="MOM__EOS_8F90" startline="1163" endline="1175">mom_eos::eos_domain</references>
        <references refid="namespacemom__diabatic__driver_1a95ee7992059c89735b7f6ef437eee13f" compoundref="MOM__diabatic__driver_8F90" startline="253">id_clock_differential_diff</references>
        <references refid="namespacemom__diabatic__driver_1ac0824d4ab23eb0cff642acd5b40f38cf" compoundref="MOM__diabatic__driver_8F90" startline="251" endline="251">id_clock_entrain</references>
        <references refid="namespacemom__diabatic__driver_1a24bf3b09c5e211c2bb42668cd946dd5a" compoundref="MOM__diabatic__driver_8F90" startline="253" endline="253">id_clock_geothermal</references>
        <references refid="namespacemom__diabatic__driver_1a6b41dac58aa5c518f1affcf4423a7fb4" compoundref="MOM__diabatic__driver_8F90" startline="254" endline="254">id_clock_kpp</references>
        <references refid="namespacemom__diabatic__driver_1a64b9dbea706cd013f6541f4240fb1133" compoundref="MOM__diabatic__driver_8F90" startline="251">id_clock_mixedlayer</references>
        <references refid="namespacemom__diabatic__driver_1a0e4dcc94de5ad908253905f1d0f9c1c8" compoundref="MOM__diabatic__driver_8F90" startline="252">id_clock_pass</references>
        <references refid="namespacemom__diabatic__driver_1a812f6ee12f2449c3ce656c7f14aa882e" compoundref="MOM__diabatic__driver_8F90" startline="253">id_clock_remap</references>
        <references refid="namespacemom__diabatic__driver_1a34d2b3a2764fe2337a4701bc63ba2cb9" compoundref="MOM__diabatic__driver_8F90" startline="251">id_clock_set_diffusivity</references>
        <references refid="namespacemom__diabatic__driver_1aec621b79c9fbf1cda2b82ce42eb25339" compoundref="MOM__diabatic__driver_8F90" startline="252">id_clock_sponge</references>
        <references refid="namespacemom__diabatic__driver_1aee5d35fe0a4026b135359b9f765f5fd3" compoundref="MOM__diabatic__driver_8F90" startline="252" endline="252">id_clock_tracers</references>
        <references refid="namespacemom__diabatic__driver_1a0e5ed4eea2273ac3f3b73bd20235801d" compoundref="MOM__diabatic__driver_8F90" startline="252">id_clock_tridiag</references>
        <references refid="namespacemom__cvmix__kpp_1abebacc1ae8c13149d816a60ff2e824b6" compoundref="MOM__CVMix__KPP_8F90" startline="1452" endline="1506">mom_cvmix_kpp::kpp_nonlocaltransport_saln</references>
        <references refid="namespacemom__cvmix__kpp_1a54093ca1cac897785c965c00efa12fe6" compoundref="MOM__CVMix__KPP_8F90" startline="1390" endline="1445">mom_cvmix_kpp::kpp_nonlocaltransport_temp</references>
        <references refid="namespacemom__checksum__packages_1a6d09d11c188659dd5ebd0b36fc42aa2b" compoundref="MOM__checksum__packages_8F90" startline="240" endline="374">mom_checksum_packages::mom_state_stats</references>
        <references refid="namespacemom__variables_1a3a49e8f236529824956f8c5c3e147893" compoundref="MOM__variables_8F90" startline="534" endline="550">mom_variables::mom_thermovar_chksum</references>
        <references refid="namespacemom__regularize__layers_1a6cd6e85c8425099cc30c8d67de17c1ed" compoundref="MOM__regularize__layers_8F90" startline="72" endline="103">mom_regularize_layers::regularize_layers</references>
        <references refid="namespacemom__diabatic__aux_1adce369573ff355b820320d9c3b048693" compoundref="MOM__diabatic__aux_8F90" startline="531" endline="585">mom_diabatic_aux::set_pen_shortwave</references>
        <references refid="namespacemom__tracer__diabatic_1ac5d57973547cc4ed3a89808d3910943e" compoundref="MOM__tracer__diabatic_8F90" startline="27" endline="222">mom_tracer_diabatic::tracer_vertdiff</references>
        <referencedby refid="namespacemom__diabatic__driver_1ada12cae1e63c6aa56775f1a235b7db95" compoundref="MOM__diabatic__driver_8F90" startline="263" endline="445">diabatic</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__driver_1a49144b7b0c0d44fde6cd835f1001dde5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_driver::extract_diabatic_member</definition>
        <argsstring>(CS, opacity_CSp, optics_CSp, evap_CFL_limit, minimum_forcing_depth, KPP_CSp, energetic_PBL_CSp, diabatic_aux_CSp, diabatic_halo)</argsstring>
        <name>extract_diabatic_member</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>opacity_CSp</type>
          <defname>opacity_CSp</defname>
        </param>
        <param>
          <type>optics_CSp</type>
          <defname>optics_CSp</defname>
        </param>
        <param>
          <type>evap_CFL_limit</type>
          <defname>evap_CFL_limit</defname>
        </param>
        <param>
          <type>minimum_forcing_depth</type>
          <defname>minimum_forcing_depth</defname>
        </param>
        <param>
          <type>KPP_CSp</type>
          <defname>KPP_CSp</defname>
        </param>
        <param>
          <type>energetic_PBL_CSp</type>
          <defname>energetic_PBL_CSp</defname>
        </param>
        <param>
          <type>diabatic_aux_CSp</type>
          <defname>diabatic_aux_CSp</defname>
        </param>
        <param>
          <type>diabatic_halo</type>
          <defname>diabatic_halo</defname>
        </param>
        <briefdescription>
<para>Returns pointers or values of members within the diabatic_CS type. For extensibility, each returned argument is an optional argument. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cs</parametername>
</parameternamelist>
<parameterdescription>
<para>module control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>opacity_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to be set to the opacity control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>optics_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to be set to the optics control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>kpp_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to be set to the KPP CS</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>energetic_pbl_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to be set to the ePBL CS</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">evap_cfl_limit</parametername>
</parameternamelist>
<parameterdescription>
<para>The largest fraction of a layer that can be evaporated in one time-step [nondim].</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">minimum_forcing_depth</parametername>
</parameternamelist>
<parameterdescription>
<para>The smallest depth over which heat and freshwater fluxes are applied [H ~&gt; m or kg m-2].</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>diabatic_aux_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to be set to the diabatic_aux control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">diabatic_halo</parametername>
</parameternamelist>
<parameterdescription>
<para>The halo size where the diabatic algorithms assume thermodynamics properties are valid. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="2817" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="2819" bodyend="2844"/>
        <referencedby refid="namespacemom__lateral__boundary__diffusion_1a4eb098abd02dbf022558e4bedfe9cdef" compoundref="MOM__lateral__boundary__diffusion_8F90" startline="68" endline="129">mom_lateral_boundary_diffusion::lateral_boundary_diffusion_init</referencedby>
        <referencedby refid="namespacemom__neutral__diffusion_1a39ce023f4b8ebc8d30f25a9b1ca93925" compoundref="MOM__neutral__diffusion_8F90" startline="117" endline="278">mom_neutral_diffusion::neutral_diffusion_init</referencedby>
        <referencedby refid="namespacemom__offline__main_1ae68ac2570f0623013b09714d467ef857" compoundref="MOM__offline__main_8F90" startline="1290" endline="1460">mom_offline_main::offline_transport_init</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__driver_1aef60aa7bfe62f65408c7005b6cb613e8" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_driver::adiabatic</definition>
        <argsstring>(h, tv, fluxes, dt, G, GV, US, CS)</argsstring>
        <name>adiabatic</name>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</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>
        <briefdescription>
<para>Routine called for adiabatic physics. </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="inout">h</parametername>
</parameternamelist>
<parameterdescription>
<para>thickness [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>points to thermodynamic fields</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>boundary fluxes</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>time step [T ~&gt; s]</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">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type</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/parameterizations/vertical/MOM_diabatic_driver.F90" line="2848" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="2849" bodyend="2865"/>
        <references refid="namespacemom__tracer__flow__control_1ae4af301529462d180014b52d0ceea67c" compoundref="MOM__tracer__flow__control_8F90" startline="381" endline="537">mom_tracer_flow_control::call_tracer_column_fns</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__driver_1af0aa2526c1824517fe5cdae65b48abd9" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_diabatic_driver::diagnose_diabatic_diff_tendency</definition>
        <argsstring>(tv, h, temp_old, saln_old, dt, G, GV, US, CS)</argsstring>
        <name>diagnose_diabatic_diff_tendency</name>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>temp_old</type>
          <defname>temp_old</defname>
        </param>
        <param>
          <type>saln_old</type>
          <defname>saln_old</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>
        <briefdescription>
<para>This routine diagnoses tendencies from application of diabatic diffusion using ALE algorithm. Note that layer thickness is not altered by diabatic diffusion. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">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">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>points to updated thermodynamic fields</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>thickness [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">temp_old</parametername>
</parameternamelist>
<parameterdescription>
<para>temperature prior to diabatic physics</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">saln_old</parametername>
</parameternamelist>
<parameterdescription>
<para>salinity prior to diabatic physics [ppt]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>time step [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>module control structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="2872" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="2873" bodyend="2956"/>
        <referencedby refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">diabatic_ale</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" compoundref="MOM__diabatic__driver_8F90" startline="453" endline="1165">diabatic_ale_legacy</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">layered_diabatic</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__driver_1a9a32fd213024239e5818f0bd88764761" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_diabatic_driver::diagnose_boundary_forcing_tendency</definition>
        <argsstring>(tv, h, temp_old, saln_old, h_old, dt, G, GV, US, CS)</argsstring>
        <name>diagnose_boundary_forcing_tendency</name>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>temp_old</type>
          <defname>temp_old</defname>
        </param>
        <param>
          <type>saln_old</type>
          <defname>saln_old</defname>
        </param>
        <param>
          <type>h_old</type>
          <defname>h_old</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>
        <briefdescription>
<para>This routine diagnoses tendencies from application of boundary fluxes. These impacts are generally 3d, in particular for penetrative shortwave. Other fluxes contribute 3d in cases when the layers vanish or are very thin, in which case we distribute the flux into k &gt; 1 layers. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">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">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>points to updated thermodynamic fields</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>thickness after boundary flux application [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">temp_old</parametername>
</parameternamelist>
<parameterdescription>
<para>temperature prior to boundary flux application [degC]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">saln_old</parametername>
</parameternamelist>
<parameterdescription>
<para>salinity prior to boundary flux application [ppt]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_old</parametername>
</parameternamelist>
<parameterdescription>
<para>thickness prior to boundary flux application [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>time step [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>module control structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="2964" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="2966" bodyend="3054"/>
        <referencedby refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">diabatic_ale</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" compoundref="MOM__diabatic__driver_8F90" startline="453" endline="1165">diabatic_ale_legacy</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__driver_1af79993410fea86ff69ef417396798bac" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_diabatic_driver::diagnose_frazil_tendency</definition>
        <argsstring>(tv, h, temp_old, dt, G, GV, US, CS)</argsstring>
        <name>diagnose_frazil_tendency</name>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>temp_old</type>
          <defname>temp_old</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>
        <briefdescription>
<para>This routine diagnoses tendencies for temperature and heat from frazil formation. This routine is called twice from within subroutine diabatic; at start and at end of the diabatic processes. The impacts from frazil are generally a function of depth. Hence, when checking heat budget, be sure to remove HFSIFRAZIL from HFDS in k=1. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">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">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>points to updated thermodynamic fields</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>thickness [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">temp_old</parametername>
</parameternamelist>
<parameterdescription>
<para>temperature prior to frazil formation [degC]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>time step [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>module control structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="3062" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="3063" bodyend="3106"/>
        <referencedby refid="namespacemom__diabatic__driver_1ada12cae1e63c6aa56775f1a235b7db95" compoundref="MOM__diabatic__driver_8F90" startline="263" endline="445">diabatic</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__driver_1aebe83a2ee710958a79623d1ccdde56d2" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_driver::adiabatic_driver_init</definition>
        <argsstring>(Time, G, param_file, diag, CS, tracer_flow_CSp)</argsstring>
        <name>adiabatic_driver_init</name>
        <param>
          <type>Time</type>
          <defname>Time</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</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>
        <param>
          <type>tracer_flow_CSp</type>
          <defname>tracer_flow_CSp</defname>
        </param>
        <briefdescription>
<para>A simplified version of diabatic_driver_init that will allow tracer column functions to be called without allowing any of the diabatic processes to be used. </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>model grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>the file to parse for parameter values</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>
<parameteritem>
<parameternamelist>
<parametername>tracer_flow_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to control structure of the tracer flow control module </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="3113" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="3115" bodyend="3139"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__driver_1a51d273bae7e5d2217fa5498620532888" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_driver::diabatic_driver_init</definition>
        <argsstring>(Time, G, GV, US, param_file, useALEalgorithm, diag, ADp, CDp, CS, tracer_flow_CSp, sponge_CSp, ALE_sponge_CSp)</argsstring>
        <name>diabatic_driver_init</name>
        <param>
          <type>Time</type>
          <defname>Time</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>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>useALEalgorithm</type>
          <defname>useALEalgorithm</defname>
        </param>
        <param>
          <type>diag</type>
          <defname>diag</defname>
        </param>
        <param>
          <type>ADp</type>
          <defname>ADp</defname>
        </param>
        <param>
          <type>CDp</type>
          <defname>CDp</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>tracer_flow_CSp</type>
          <defname>tracer_flow_CSp</defname>
        </param>
        <param>
          <type>sponge_CSp</type>
          <defname>sponge_CSp</defname>
        </param>
        <param>
          <type>ALE_sponge_CSp</type>
          <defname>ALE_sponge_CSp</defname>
        </param>
        <briefdescription>
<para>This routine initializes the diabatic driver module. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>time</parametername>
</parameternamelist>
<parameterdescription>
<para>model time</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>model grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>model vertical 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>file to parse for parameter values</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">usealealgorithm</parametername>
</parameternamelist>
<parameterdescription>
<para>logical for whether to use ALE remapping</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">diag</parametername>
</parameternamelist>
<parameterdescription>
<para>structure to regulate diagnostic output</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">adp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointers to accelerations in momentum equations, to enable diagnostics, like energy budgets</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">cdp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointers to terms in continuity equations</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>module control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>tracer_flow_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to control structure of the tracer flow control module</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sponge_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the sponge module control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ale_sponge_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>pointer to the ALE sponge module control structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="3144" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="3147" bodyend="3727"/>
        <references refid="namespacemom__bulk__mixed__layer_1a14f3b36851c81d60fb31ff86870a7d54" compoundref="MOM__bulk__mixed__layer_8F90" startline="3390" endline="3685">mom_bulk_mixed_layer::bulkmixedlayer_init</references>
        <references refid="namespacemom__cvmix__ddiff_1a8f7ea8f60fe6775caadf68b29108b064" compoundref="MOM__CVMix__ddiff_8F90" startline="275" endline="278">mom_cvmix_ddiff::cvmix_ddiff_is_used</references>
        <references refid="namespacemom__cvmix__shear_1aa8084ded891a4e6e33ceeec0f240233f" compoundref="MOM__CVMix__shear_8F90" startline="317" endline="324">mom_cvmix_shear::cvmix_shear_is_used</references>
        <references refid="namespacemom__geothermal_1a1b764e98a70404c9a13909f01068389c" compoundref="MOM__geothermal_8F90" startline="503" endline="606">mom_geothermal::geothermal_init</references>
        <references refid="namespacemom__verticalgrid_1a1eea13d63bdc910462ffba406d32fe04" compoundref="MOM__verticalGrid_8F90" startline="190" endline="200">mom_verticalgrid::get_thickness_units</references>
        <references refid="namespacemom__diabatic__driver_1a95ee7992059c89735b7f6ef437eee13f" compoundref="MOM__diabatic__driver_8F90" startline="253">id_clock_differential_diff</references>
        <references refid="namespacemom__diabatic__driver_1ac0824d4ab23eb0cff642acd5b40f38cf" compoundref="MOM__diabatic__driver_8F90" startline="251" endline="251">id_clock_entrain</references>
        <references refid="namespacemom__diabatic__driver_1a24bf3b09c5e211c2bb42668cd946dd5a" compoundref="MOM__diabatic__driver_8F90" startline="253" endline="253">id_clock_geothermal</references>
        <references refid="namespacemom__diabatic__driver_1a6b41dac58aa5c518f1affcf4423a7fb4" compoundref="MOM__diabatic__driver_8F90" startline="254" endline="254">id_clock_kpp</references>
        <references refid="namespacemom__diabatic__driver_1a64b9dbea706cd013f6541f4240fb1133" compoundref="MOM__diabatic__driver_8F90" startline="251">id_clock_mixedlayer</references>
        <references refid="namespacemom__diabatic__driver_1a0e4dcc94de5ad908253905f1d0f9c1c8" compoundref="MOM__diabatic__driver_8F90" startline="252">id_clock_pass</references>
        <references refid="namespacemom__diabatic__driver_1a812f6ee12f2449c3ce656c7f14aa882e" compoundref="MOM__diabatic__driver_8F90" startline="253">id_clock_remap</references>
        <references refid="namespacemom__diabatic__driver_1a34d2b3a2764fe2337a4701bc63ba2cb9" compoundref="MOM__diabatic__driver_8F90" startline="251">id_clock_set_diffusivity</references>
        <references refid="namespacemom__diabatic__driver_1aec621b79c9fbf1cda2b82ce42eb25339" compoundref="MOM__diabatic__driver_8F90" startline="252">id_clock_sponge</references>
        <references refid="namespacemom__diabatic__driver_1aee5d35fe0a4026b135359b9f765f5fd3" compoundref="MOM__diabatic__driver_8F90" startline="252" endline="252">id_clock_tracers</references>
        <references refid="namespacemom__diabatic__driver_1a0e5ed4eea2273ac3f3b73bd20235801d" compoundref="MOM__diabatic__driver_8F90" startline="252">id_clock_tridiag</references>
        <references refid="namespacemom__internal__tides_1a48431ac355c6fa3de7548bfdec620eb0" compoundref="MOM__internal__tides_8F90" startline="2102" endline="2544">mom_internal_tides::internal_tides_init</references>
        <references refid="namespacemom__kappa__shear_1ac7859c609e462000ca8fd763d68d141e" compoundref="MOM__kappa__shear_8F90" startline="1961" endline="1968">mom_kappa_shear::kappa_shear_is_used</references>
        <references refid="namespacemom__regularize__layers_1a7f5b60398ab6cb0dd38cdc3b3053091e" compoundref="MOM__regularize__layers_8F90" startline="769" endline="855">mom_regularize_layers::regularize_layers_init</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__driver_1a6eac8317c3b569e414fb5a6678afc598" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_driver::diabatic_driver_end</definition>
        <argsstring>(CS)</argsstring>
        <name>diabatic_driver_end</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Routine to close the diabatic driver 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/parameterizations/vertical/MOM_diabatic_driver.F90" line="3732" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" bodystart="3733" bodyend="3770"/>
        <references refid="namespacemom__cvmix__conv_1a4f35df3a407ded91cd67384a14da3a3c" compoundref="MOM__CVMix__conv_8F90" startline="314" endline="320">mom_cvmix_conv::cvmix_conv_end</references>
        <references refid="namespacemom__entrain__diffusive_1a0e71b47abe1e1889f4b687139615ca14" compoundref="MOM__entrain__diffusive_8F90" startline="2148" endline="2151">mom_entrain_diffusive::entrain_diffusive_end</references>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>This routine drives the diabatic/dianeutral physics for MOM. </para>    </briefdescription>
    <detaileddescription>
<para>By Robert Hallberg, Alistair Adcroft, and Stephen Griffies.</para><para>This program contains the subroutine that, along with the subroutines that it calls, implements diapycnal mass and momentum fluxes and a bulk mixed layer. The diapycnal diffusion can be used without the bulk mixed layer.</para><sect1 id="namespacemom__diabatic__driver_1section_diabatic">
<title>Outline of MOM diabatic</title>
<para><itemizedlist>
<listitem><para>diabatic first determines the (diffusive) diapycnal mass fluxes based on the convergence of the buoyancy fluxes within each layer.</para></listitem><listitem><para>The dual-stream entrainment scheme of MacDougall and Dewar (JPO, 1997) is used for combined diapycnal advection and diffusion, calculated implicitly and potentially with the Richardson number dependent mixing, as described by Hallberg (MWR, 2000).</para></listitem><listitem><para>Diapycnal advection is the residual of diapycnal diffusion, so the fully implicit upwind differencing scheme that is used is entirely appropriate.</para></listitem><listitem><para>The downward buoyancy flux in each layer is determined from an implicit calculation based on the previously calculated flux of the layer above and an estimated flux in the layer below. This flux is subject to the following conditions: (1) the flux in the top and bottom layers are set by the boundary conditions, and (2) no layer may be driven below an Angstrom thick- ness. If there is a bulk mixed layer, the buffer layer is treated as a fixed density layer with vanishingly small diffusivity.</para><para>diabatic takes 5 arguments: the two velocities (u and v), the thicknesses (h), a structure containing the forcing fields, and the length of time over which to act (dt). The velocities and thickness are taken as inputs and modified within the subroutine. There is no limit on the time step. </para></listitem></itemizedlist>
</para></sect1>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_driver.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
