<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.20" xml:lang="en-US">
  <compounddef id="namespacemom__diabatic__aux" kind="namespace" language="Fortran">
    <compoundname>mom_diabatic_aux</compoundname>
    <innerclass refid="structmom__diabatic__aux_1_1diabatic__aux__cs" prot="public">mom_diabatic_aux::diabatic_aux_cs</innerclass>
      <sectiondef kind="user-defined">
      <memberdef kind="variable" id="namespacemom__diabatic__aux_1a1fffddaa09c8650a74e045c2fe29e256" prot="public" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_diabatic_aux::id_clock_uv_at_h</definition>
        <argsstring></argsstring>
        <name>id_clock_uv_at_h</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="94" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" bodystart="94" bodyend="94"/>
        <referencedby refid="namespacemom__diabatic__aux_1a967697feb7ea22e1430d2b673ebab544" compoundref="MOM__diabatic__aux_8F90" startline="1481" endline="1639">diabatic_aux_init</referencedby>
        <referencedby refid="namespacemom__diabatic__aux_1a3b3416d0ee87cd1a0d54a910fb681e93" compoundref="MOM__diabatic__aux_8F90" startline="431" endline="526">find_uv_at_h</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__diabatic__aux_1a87671b375428f3a27c18c61d6a93d035" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_diabatic_aux::id_clock_frazil</definition>
        <argsstring></argsstring>
        <name>id_clock_frazil</name>
        <briefdescription>
<para>CPU time clock IDs. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="94" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" bodystart="94" bodyend="-1"/>
        <referencedby refid="namespacemom__diabatic__aux_1a967697feb7ea22e1430d2b673ebab544" compoundref="MOM__diabatic__aux_8F90" startline="1481" endline="1639">diabatic_aux_init</referencedby>
        <referencedby refid="namespacemom__diabatic__aux_1adb99fd4e2092c17cd69143945733a6d9" compoundref="MOM__diabatic__aux_8F90" startline="104" endline="221">make_frazil</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__diabatic__aux_1adb99fd4e2092c17cd69143945733a6d9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_aux::make_frazil</definition>
        <argsstring>(h, tv, G, GV, US, CS, p_surf, halo)</argsstring>
        <name>make_frazil</name>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</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>p_surf</type>
          <defname>p_surf</defname>
        </param>
        <param>
          <type>halo</type>
          <defname>halo</defname>
        </param>
        <briefdescription>
<para>Frazil formation keeps the temperature above the freezing point. This subroutine warms any water that is colder than the (currently surface) freezing point up to the freezing point and accumulates the required heat (in [Q R Z ~&gt; J m-2]) in tvfrazil. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thicknesses [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>Structure containing pointers to any available thermodynamic fields. </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">cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure returned by a previous call to diabatic_aux_init. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">p_surf</parametername>
</parameternamelist>
<parameterdescription>
<para>The pressure at the ocean surface [R L2 T-2 ~&gt; Pa]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">halo</parametername>
</parameternamelist>
<parameterdescription>
<para>Halo width over which to calculate frazil </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="103" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" bodystart="104" bodyend="221"/>
        <references refid="namespacemom__diabatic__aux_1a87671b375428f3a27c18c61d6a93d035" compoundref="MOM__diabatic__aux_8F90" startline="94">id_clock_frazil</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__aux_1a0b81bac82b18bd9f1e3e5a3beda78966" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_aux::differential_diffuse_t_s</definition>
        <argsstring>(h, T, S, Kd_T, Kd_S, dt, G, GV)</argsstring>
        <name>differential_diffuse_t_s</name>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>T</type>
          <defname>T</defname>
        </param>
        <param>
          <type>S</type>
          <defname>S</defname>
        </param>
        <param>
          <type>Kd_T</type>
          <defname>Kd_T</defname>
        </param>
        <param>
          <type>Kd_S</type>
          <defname>Kd_S</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>
        <briefdescription>
<para>This subroutine applies double diffusion to T &amp; S, assuming no diapycal mass fluxes, using a simple triadiagonal solver. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thicknesses [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">t</parametername>
</parameternamelist>
<parameterdescription>
<para>Potential temperature [degC]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">s</parametername>
</parameternamelist>
<parameterdescription>
<para>Salinity [PSU] or [gSalt/kg], generically [ppt]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">kd_t</parametername>
</parameternamelist>
<parameterdescription>
<para>The extra diffusivity of temperature due to </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">kd_s</parametername>
</parameternamelist>
<parameterdescription>
<para>The extra diffusivity of salinity due to </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>Time increment [T ~&gt; s]. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="226" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" bodystart="227" bodyend="316"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__aux_1a737df97b7e0205b0680c3b901ff6e2ff" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_aux::adjust_salt</definition>
        <argsstring>(h, tv, G, GV, CS, halo)</argsstring>
        <name>adjust_salt</name>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>halo</type>
          <defname>halo</defname>
        </param>
        <briefdescription>
<para>This subroutine keeps salinity from falling below a small but positive threshold. This usually occurs when the ice model attempts to extract more salt then is actually available to it from the ocean. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thicknesses [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>Structure containing pointers to any available thermodynamic fields. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure returned by a previous call to diabatic_aux_init. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">halo</parametername>
</parameternamelist>
<parameterdescription>
<para>Halo width over which to work </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="322" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" bodystart="323" bodyend="376"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__aux_1acde4c76c9a489b82cba0bac5ec1b1198" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_aux::tridiagts</definition>
        <argsstring>(G, GV, is, ie, js, je, hold, ea, eb, T, S)</argsstring>
        <name>tridiagts</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>is</type>
          <defname>is</defname>
        </param>
        <param>
          <type>ie</type>
          <defname>ie</defname>
        </param>
        <param>
          <type>js</type>
          <defname>js</defname>
        </param>
        <param>
          <type>je</type>
          <defname>je</defname>
        </param>
        <param>
          <type>hold</type>
          <defname>hold</defname>
        </param>
        <param>
          <type>ea</type>
          <defname>ea</defname>
        </param>
        <param>
          <type>eb</type>
          <defname>eb</defname>
        </param>
        <param>
          <type>T</type>
          <defname>T</defname>
        </param>
        <param>
          <type>S</type>
          <defname>S</defname>
        </param>
        <briefdescription>
<para>This is a simple tri-diagonal solver for T and S. &quot;Simple&quot; means it only uses arrays hold, ea and eb. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">is</parametername>
</parameternamelist>
<parameterdescription>
<para>The start i-index to work on. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ie</parametername>
</parameternamelist>
<parameterdescription>
<para>The end i-index to work on. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">js</parametername>
</parameternamelist>
<parameterdescription>
<para>The start j-index to work on. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">je</parametername>
</parameternamelist>
<parameterdescription>
<para>The end j-index to work on. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">hold</parametername>
</parameternamelist>
<parameterdescription>
<para>The layer thicknesses before entrainment, [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ea</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of fluid entrained from the layer above within this time step [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">eb</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of fluid entrained from the layer below within this time step [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">t</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer potential temperatures [degC]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">s</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer salinities [ppt]. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="381" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" bodystart="382" bodyend="425"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__aux_1a3b3416d0ee87cd1a0d54a910fb681e93" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_aux::find_uv_at_h</definition>
        <argsstring>(u, v, h, u_h, v_h, G, GV, US, ea, eb)</argsstring>
        <name>find_uv_at_h</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>u_h</type>
          <defname>u_h</defname>
        </param>
        <param>
          <type>v_h</type>
          <defname>v_h</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>ea</type>
          <defname>ea</defname>
        </param>
        <param>
          <type>eb</type>
          <defname>eb</defname>
        </param>
        <briefdescription>
<para>This subroutine calculates u_h and v_h (velocities at thickness points), optionally using the entrainment amounts passed in as arguments. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">u</parametername>
</parameternamelist>
<parameterdescription>
<para>The zonal velocity [L T-1 ~&gt; m s-1] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">v</parametername>
</parameternamelist>
<parameterdescription>
<para>The meridional velocity [L T-1 ~&gt; m s-1] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thicknesses [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">u_h</parametername>
</parameternamelist>
<parameterdescription>
<para>Zonal velocity interpolated to h points [L T-1 ~&gt; m s-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">v_h</parametername>
</parameternamelist>
<parameterdescription>
<para>Meridional velocity interpolated to h points [L T-1 ~&gt; m s-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ea</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of fluid entrained from the layer </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">eb</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of fluid entrained from the layer </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="430" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" bodystart="431" bodyend="526"/>
        <references refid="namespacemom__diabatic__aux_1a1fffddaa09c8650a74e045c2fe29e256" compoundref="MOM__diabatic__aux_8F90" startline="94" endline="94">id_clock_uv_at_h</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__aux_1adce369573ff355b820320d9c3b048693" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_aux::set_pen_shortwave</definition>
        <argsstring>(optics, fluxes, G, GV, US, CS, opacity_CSp, tracer_flow_CSp)</argsstring>
        <name>set_pen_shortwave</name>
        <param>
          <type>optics</type>
          <defname>optics</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</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>opacity_CSp</type>
          <defname>opacity_CSp</defname>
        </param>
        <param>
          <type>tracer_flow_CSp</type>
          <defname>tracer_flow_CSp</defname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>optics</parametername>
</parameternamelist>
<parameterdescription>
<para>An optics structure that has will contain information about shortwave fluxes and absorption.</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="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure.</para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure.</para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type</para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Control structure for diabatic_aux</para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>opacity_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure for the opacity module.</para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>tracer_flow_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the control structure organizing the tracer modules. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="530" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" bodystart="531" bodyend="585"/>
        <references refid="namespacemom__tracer__flow__control_1abd2e9269190427ba86fb8a26e6792e66" compoundref="MOM__tracer__flow__control_8F90" startline="336" endline="350">mom_tracer_flow_control::get_chl_from_model</references>
        <referencedby refid="namespacemom__diabatic__driver_1ae57c48925de75712384e859a851c8c40" compoundref="MOM__diabatic__driver_8F90" startline="1173" endline="1848">mom_diabatic_driver::diabatic_ale</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1acf7394d08f436dd9575b568d1f18e18a" compoundref="MOM__diabatic__driver_8F90" startline="453" endline="1165">mom_diabatic_driver::diabatic_ale_legacy</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">mom_diabatic_driver::layered_diabatic</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__aux_1a43ac98433f0f2f0e6cf4f8a3c9622ec4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_aux::diagnosemldbydensitydifference</definition>
        <argsstring>(id_MLD, h, tv, densityDiff, G, GV, US, diagPtr, id_N2subML, id_MLDsq, dz_subML)</argsstring>
        <name>diagnosemldbydensitydifference</name>
        <param>
          <type>id_MLD</type>
          <defname>id_MLD</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>densityDiff</type>
          <defname>densityDiff</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>diagPtr</type>
          <defname>diagPtr</defname>
        </param>
        <param>
          <type>id_N2subML</type>
          <defname>id_N2subML</defname>
        </param>
        <param>
          <type>id_MLDsq</type>
          <defname>id_MLDsq</defname>
        </param>
        <param>
          <type>dz_subML</type>
          <defname>dz_subML</defname>
        </param>
        <briefdescription>
<para>Diagnose a mixed layer depth (MLD) determined by a given density difference with the surface. This routine is appropriate in MOM_diabatic_driver due to its position within the time stepping. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>Grid type </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="in">id_mld</parametername>
</parameternamelist>
<parameterdescription>
<para>Handle (ID) of MLD diagnostic </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thickness [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>Structure containing pointers to any available thermodynamic fields. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">densitydiff</parametername>
</parameternamelist>
<parameterdescription>
<para>Density difference to determine MLD [R ~&gt; kg m-3] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>diagptr</parametername>
</parameternamelist>
<parameterdescription>
<para>Diagnostics structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">id_n2subml</parametername>
</parameternamelist>
<parameterdescription>
<para>Optional handle (ID) of subML stratification </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">id_mldsq</parametername>
</parameternamelist>
<parameterdescription>
<para>Optional handle (ID) of squared MLD </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dz_subml</parametername>
</parameternamelist>
<parameterdescription>
<para>The distance over which to calculate N2subML or 50 m if missing [Z ~&gt; m] </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="591" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" bodystart="593" bodyend="717"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__aux_1a695474893b92e3e3418a2bed871a5d7e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_aux::diagnosemldbyenergy</definition>
        <argsstring>(id_MLD, h, tv, G, GV, US, Mixing_Energy, diagPtr)</argsstring>
        <name>diagnosemldbyenergy</name>
        <param>
          <type>id_MLD</type>
          <defname>id_MLD</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</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>Mixing_Energy</type>
          <defname>Mixing_Energy</defname>
        </param>
        <param>
          <type>diagPtr</type>
          <defname>diagPtr</defname>
        </param>
        <briefdescription>
<para>Diagnose a mixed layer depth (MLD) determined by the depth a given energy value would mix. This routine is appropriate in MOM_diabatic_driver due to its position within the time stepping. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">id_mld</parametername>
</parameternamelist>
<parameterdescription>
<para>Energy output diag IDs </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>Grid type </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="in">mixing_energy</parametername>
</parameternamelist>
<parameterdescription>
<para>Energy values for up to 3 MLDs </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thickness [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>Structure containing pointers to any available thermodynamic fields. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>diagptr</parametername>
</parameternamelist>
<parameterdescription>
<para>Diagnostics structure </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="722" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" bodystart="723" bodyend="922"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__aux_1ae7a279c765fa370c302532c13a1adaca" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_aux::applyboundaryfluxesinout</definition>
        <argsstring>(CS, G, GV, US, dt, fluxes, optics, nsw, h, tv, aggregate_FW_forcing, evap_CFL_limit, minimum_forcing_depth, cTKE, dSV_dT, dSV_dS, SkinBuoyFlux)</argsstring>
        <name>applyboundaryfluxesinout</name>
        <param>
          <type>CS</type>
          <defname>CS</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>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <param>
          <type>optics</type>
          <defname>optics</defname>
        </param>
        <param>
          <type>nsw</type>
          <defname>nsw</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>aggregate_FW_forcing</type>
          <defname>aggregate_FW_forcing</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>cTKE</type>
          <defname>cTKE</defname>
        </param>
        <param>
          <type>dSV_dT</type>
          <defname>dSV_dT</defname>
        </param>
        <param>
          <type>dSV_dS</type>
          <defname>dSV_dS</defname>
        </param>
        <param>
          <type>SkinBuoyFlux</type>
          <defname>SkinBuoyFlux</defname>
        </param>
        <briefdescription>
<para>Update the thickness, temperature, and salinity due to thermodynamic boundary forcing (contained in fluxes type) applied to h, tvT and tvS, and calculate the TKE implications of this heating. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Control structure for diabatic_aux </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>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="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>Time-step over which forcing is applied [T ~&gt; s] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>Surface fluxes container </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>optics</parametername>
</parameternamelist>
<parameterdescription>
<para>Optical properties container </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">nsw</parametername>
</parameternamelist>
<parameterdescription>
<para>The number of frequency bands of penetrating shortwave radiation </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thickness [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>Structure containing pointers to any available thermodynamic fields. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">aggregate_fw_forcing</parametername>
</parameternamelist>
<parameterdescription>
<para>If False, treat in/out fluxes separately. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">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="in">minimum_forcing_depth</parametername>
</parameternamelist>
<parameterdescription>
<para>The smallest depth over which heat and freshwater fluxes is applied [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">ctke</parametername>
</parameternamelist>
<parameterdescription>
<para>Turbulent kinetic energy requirement to mix </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">dsv_dt</parametername>
</parameternamelist>
<parameterdescription>
<para>Partial derivative of specific volume with </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">dsv_ds</parametername>
</parameternamelist>
<parameterdescription>
<para>Partial derivative of specific volume with </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">skinbuoyflux</parametername>
</parameternamelist>
<parameterdescription>
<para>Buoyancy flux at surface [Z2 T-3 ~&gt; m2 s-3]. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="928" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" bodystart="932" bodyend="1476"/>
        <references refid="namespacemom__opacity_1a21db9da24cea8b875040ba1e7e8b2e9b" compoundref="MOM__opacity_8F90" startline="511" endline="772">mom_opacity::absorbremainingsw</references>
        <references refid="namespacemom__forcing__type_1a6bf986155aba959222a117ca40ba7e0d" compoundref="MOM__forcing__type_8F90" startline="365" endline="819">mom_forcing_type::extractfluxes1d</references>
        <references refid="namespacemom__forcing__type_1a1048a8e80ebd47f83b91772c02aedba2" compoundref="MOM__forcing__type_8F90" startline="1173" endline="1227">mom_forcing_type::forcing_singlepointprint</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__aux_1a967697feb7ea22e1430d2b673ebab544" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_aux::diabatic_aux_init</definition>
        <argsstring>(Time, G, GV, US, param_file, diag, CS, useALEalgorithm, use_ePBL)</argsstring>
        <name>diabatic_aux_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>diag</type>
          <defname>diag</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>useALEalgorithm</type>
          <defname>useALEalgorithm</defname>
        </param>
        <param>
          <type>use_ePBL</type>
          <defname>use_ePBL</defname>
        </param>
        <briefdescription>
<para>This subroutine initializes the parameters and control structure of the diabatic_aux module. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">time</parametername>
</parameternamelist>
<parameterdescription>
<para>The current model time. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="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>A structure to parse for run-time parameters </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">diag</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure used to regulate diagnostic output </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the control structure for the diabatic_aux module, which is initialized here. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">usealealgorithm</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, use the ALE algorithm rather than layered mode. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">use_epbl</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, use the implicit energetics planetary boundary layer scheme to determine the diffusivity in the surface boundary layer. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="1480" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" bodystart="1481" bodyend="1639"/>
        <references refid="namespacemom__diabatic__aux_1a87671b375428f3a27c18c61d6a93d035" compoundref="MOM__diabatic__aux_8F90" startline="94">id_clock_frazil</references>
        <references refid="namespacemom__diabatic__aux_1a1fffddaa09c8650a74e045c2fe29e256" compoundref="MOM__diabatic__aux_8F90" startline="94" endline="94">id_clock_uv_at_h</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diabatic__aux_1a071e066ca5ed6619c6a9515fb07f5567" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diabatic_aux::diabatic_aux_end</definition>
        <argsstring>(CS)</argsstring>
        <name>diabatic_aux_end</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>This subroutine initializes the control structure and any related memory for the diabatic_aux module. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure returned by a previous call to diabatic_aux_init; it is deallocated here. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="1644" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" bodystart="1645" bodyend="1656"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Provides functions for some diabatic processes such as fraxil, brine rejection, tendency due to surface flux divergence. </para>
    </briefdescription>
    <detaileddescription>
<para>This module contains the subroutines 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>
<para>diabatic first determines the (diffusive) diapycnal mass fluxes based on the convergence of the buoyancy fluxes within each layer. 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). Diapycnal advection is fundamentally the residual of diapycnal diffusion, so the fully implicit upwind differencing scheme that is used is entirely appropriate. 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 treat- ed 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>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diabatic_aux.F90" line="3" column="1"/>
  </compounddef>
</doxygen>
