<?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.18">
  <compounddef id="namespacemom__regularize__layers" kind="namespace" language="Fortran">
    <compoundname>mom_regularize_layers</compoundname>
    <innerclass refid="structmom__regularize__layers_1_1regularize__layers__cs" prot="public">mom_regularize_layers::regularize_layers_cs</innerclass>
      <sectiondef kind="user-defined">
      <memberdef kind="variable" id="namespacemom__regularize__layers_1ab3955b6fce42b5a4b03457a57f46743b" prot="public" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_regularize_layers::id_clock_pass</definition>
        <argsstring></argsstring>
        <name>id_clock_pass</name>
        <briefdescription>
<para>Clock IDs. </para>
        </briefdescription>
        <detaileddescription>
<para><xrefsect id="todo_1_todo000005"><xreftitle>Todo</xreftitle><xrefdescription><para>Should these be global? </para>
</xrefdescription></xrefsect></para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_regularize_layers.F90" line="64" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_regularize_layers.F90" bodystart="64" bodyend="64"/>
        <referencedby refid="namespacemom__regularize__layers_1a6cd6e85c8425099cc30c8d67de17c1ed" compoundref="MOM__regularize__layers_8F90" startline="72" endline="103">regularize_layers</referencedby>
        <referencedby refid="namespacemom__regularize__layers_1a7f5b60398ab6cb0dd38cdc3b3053091e" compoundref="MOM__regularize__layers_8F90" startline="769" endline="855">regularize_layers_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__regularize__layers_1a6de9cd8fa696db5f598a330aaddd772b" prot="private" static="no" mutable="no">
        <type>integer</type>
        <definition>integer mom_regularize_layers::id_clock_eos</definition>
        <argsstring></argsstring>
        <name>id_clock_eos</name>
        <briefdescription>
<para>Clock IDs. </para>
        </briefdescription>
        <detaileddescription>
<para><xrefsect id="todo_1_todo000005"><xreftitle>Todo</xreftitle><xrefdescription><para>Should these be global? </para>
</xrefdescription></xrefsect></para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_regularize_layers.F90" line="64" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_regularize_layers.F90" bodystart="64" bodyend="-1"/>
        <referencedby refid="namespacemom__regularize__layers_1a7f5b60398ab6cb0dd38cdc3b3053091e" compoundref="MOM__regularize__layers_8F90" startline="769" endline="855">regularize_layers_init</referencedby>
        <referencedby refid="namespacemom__regularize__layers_1a220f46f9b601c8d813a3a94fba61ca0e" compoundref="MOM__regularize__layers_8F90" startline="109" endline="608">regularize_surface</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__regularize__layers_1a6cd6e85c8425099cc30c8d67de17c1ed" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_regularize_layers::regularize_layers</definition>
        <argsstring>(h, tv, dt, ea, eb, G, GV, US, CS)</argsstring>
        <name>regularize_layers</name>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>ea</type>
          <defname>ea</defname>
        </param>
        <param>
          <type>eb</type>
          <defname>eb</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 subroutine partially steps the bulk mixed layer model. The following processes are executed, in the order listed. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">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>A structure containing pointers to any available thermodynamic fields. Absent fields have NULL ptrs. </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="inout">ea</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of fluid moved downward into a </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">eb</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of fluid moved upward into a layer </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>The control structure returned by a previous call to regularize_layers_init. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_regularize_layers.F90" line="71" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_regularize_layers.F90" bodystart="72" bodyend="103"/>
        <references refid="namespacemom__regularize__layers_1ab3955b6fce42b5a4b03457a57f46743b" compoundref="MOM__regularize__layers_8F90" startline="64" endline="64">id_clock_pass</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <references refid="namespacemom__regularize__layers_1a220f46f9b601c8d813a3a94fba61ca0e" compoundref="MOM__regularize__layers_8F90" startline="109" endline="608">regularize_surface</references>
        <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__regularize__layers_1a220f46f9b601c8d813a3a94fba61ca0e" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_regularize_layers::regularize_surface</definition>
        <argsstring>(h, tv, dt, ea, eb, G, GV, US, CS)</argsstring>
        <name>regularize_surface</name>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>ea</type>
          <defname>ea</defname>
        </param>
        <param>
          <type>eb</type>
          <defname>eb</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 subroutine ensures that there is a degree of horizontal smoothness in the depths of the near-surface interfaces. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">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>A structure containing pointers to any available thermodynamic fields. Absent fields have NULL ptrs. </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="inout">ea</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of fluid moved downward into a </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">eb</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of fluid moved upward into a layer </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>The control structure returned by a previous call to regularize_layers_init. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_regularize_layers.F90" line="108" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_regularize_layers.F90" bodystart="109" bodyend="608"/>
        <references refid="namespacemom__eos_1a782d326108e390902e520efc078e8296" compoundref="MOM__EOS_8F90" startline="1163" endline="1175">mom_eos::eos_domain</references>
        <references refid="namespacemom__regularize__layers_1a4ba20ced31449e07aa640de2b71c0be8" compoundref="MOM__regularize__layers_8F90" startline="617" endline="764">find_deficit_ratios</references>
        <references refid="namespacemom__regularize__layers_1a6de9cd8fa696db5f598a330aaddd772b" compoundref="MOM__regularize__layers_8F90" startline="64">id_clock_eos</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <referencedby refid="namespacemom__regularize__layers_1a6cd6e85c8425099cc30c8d67de17c1ed" compoundref="MOM__regularize__layers_8F90" startline="72" endline="103">regularize_layers</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__regularize__layers_1a4ba20ced31449e07aa640de2b71c0be8" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_regularize_layers::find_deficit_ratios</definition>
        <argsstring>(e, def_rat_u, def_rat_v, G, GV, CS, def_rat_u_2lay, def_rat_v_2lay, halo, h)</argsstring>
        <name>find_deficit_ratios</name>
        <param>
          <type>e</type>
          <defname>e</defname>
        </param>
        <param>
          <type>def_rat_u</type>
          <defname>def_rat_u</defname>
        </param>
        <param>
          <type>def_rat_v</type>
          <defname>def_rat_v</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>def_rat_u_2lay</type>
          <defname>def_rat_u_2lay</defname>
        </param>
        <param>
          <type>def_rat_v_2lay</type>
          <defname>def_rat_v_2lay</defname>
        </param>
        <param>
          <type>halo</type>
          <defname>halo</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <briefdescription>
<para>This subroutine determines the amount by which the harmonic mean thickness at velocity points differ from the arithmetic means, relative to the the arithmetic means, after eliminating thickness variations that are solely due to topography and aggregating all interior layers into one. </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">e</parametername>
</parameternamelist>
<parameterdescription>
<para>Interface depths [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">def_rat_u</parametername>
</parameternamelist>
<parameterdescription>
<para>The thickness deficit ratio at u points, </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">def_rat_v</parametername>
</parameternamelist>
<parameterdescription>
<para>The thickness deficit ratio at v points, </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure returned by a previous call to regularize_layers_init. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">def_rat_u_2lay</parametername>
</parameternamelist>
<parameterdescription>
<para>The thickness deficit ratio at u </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">def_rat_v_2lay</parametername>
</parameternamelist>
<parameterdescription>
<para>The thickness deficit ratio at v </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">halo</parametername>
</parameternamelist>
<parameterdescription>
<para>An extra-wide halo size, 0 by default. </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>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_regularize_layers.F90" line="615" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_regularize_layers.F90" bodystart="617" bodyend="764"/>
        <referencedby refid="namespacemom__regularize__layers_1a220f46f9b601c8d813a3a94fba61ca0e" compoundref="MOM__regularize__layers_8F90" startline="109" endline="608">regularize_surface</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__regularize__layers_1a7f5b60398ab6cb0dd38cdc3b3053091e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_regularize_layers::regularize_layers_init</definition>
        <argsstring>(Time, G, GV, param_file, diag, CS)</argsstring>
        <name>regularize_layers_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>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>diag</type>
          <defname>diag</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Initializes the regularize_layers control structure. </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">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 that is used to regulate diagnostic output. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer that is set to point to the control structure for this module. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_regularize_layers.F90" line="768" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_regularize_layers.F90" bodystart="769" bodyend="855"/>
        <references refid="namespacemom__cpu__clock_1a7fda795074ed5ec5b00a26e7531c14f3" compoundref="MOM__cpu__clock_8F90" startline="23" endline="39">mom_cpu_clock::cpu_clock_id</references>
        <references refid="namespacemom__regularize__layers_1a6de9cd8fa696db5f598a330aaddd772b" compoundref="MOM__regularize__layers_8F90" startline="64">id_clock_eos</references>
        <references refid="namespacemom__regularize__layers_1ab3955b6fce42b5a4b03457a57f46743b" compoundref="MOM__regularize__layers_8F90" startline="64" endline="64">id_clock_pass</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <referencedby refid="namespacemom__diabatic__driver_1a51d273bae7e5d2217fa5498620532888" compoundref="MOM__diabatic__driver_8F90" startline="3147" endline="3727">mom_diabatic_driver::diabatic_driver_init</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Provides regularization of layers in isopycnal mode. </para>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_regularize_layers.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
