<?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__set__visc" kind="namespace" language="Fortran">
    <compoundname>mom_set_visc</compoundname>
    <innerclass refid="structmom__set__visc_1_1set__visc__cs" prot="public">mom_set_visc::set_visc_cs</innerclass>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__set__visc_1a9865113fe07928e7a240c2868ed45e5f" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_set_visc::set_viscous_bbl</definition>
        <argsstring>(u, v, h, tv, visc, G, GV, US, CS, symmetrize)</argsstring>
        <name>set_viscous_bbl</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>visc</type>
          <defname>visc</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>symmetrize</type>
          <defname>symmetrize</defname>
        </param>
        <briefdescription>
<para>Calculates the thickness of the bottom boundary layer and the viscosity within that layer. </para>        </briefdescription>
        <detaileddescription>
<para>A drag law is used, either linearized about an assumed bottom velocity or using the actual near-bottom velocities combined with an assumed unresolved velocity. The bottom boundary layer thickness is limited by a combination of stratification and rotation, as in the paper of Killworth and Edwards, JPO 1999. It is not necessary to calculate the thickness and viscosity every time step; instead previous values may be used.</para><sect1 id="namespacemom__set__visc_1set_viscous_BBL">
<title>Viscous Bottom Boundary Layer</title>
<para>If <ref refid="structmom__set__visc_1_1set__visc__cs_1aca87adb9636e724f7ccb78e7c640f399" kindref="member">set_visc_cs.bottomdraglaw</ref> is True then a bottom boundary layer viscosity and thickness are calculated so that the bottom stress is <formula id="459">\[ \mathbf{\tau}_b = C_d | U_{bbl} | \mathbf{u}_{bbl} \]</formula> If <ref refid="structmom__set__visc_1_1set__visc__cs_1aca87adb9636e724f7ccb78e7c640f399" kindref="member">set_visc_cs.bottomdraglaw</ref> is True then the term <formula id="460">$|U_{bbl}|$</formula> is set equal to the value in <ref refid="structmom__set__visc_1_1set__visc__cs_1a8e5f72291c7e5c5e602c9b4765d63ae0" kindref="member">set_visc_cs.drag_bg_vel</ref> so that <formula id="461">$C_d |U_{bbl}|$</formula> becomes a Rayleigh bottom drag. Otherwise <formula id="460">$|U_{bbl}|$</formula> is found by averaging the flow over the bottom <ref refid="structmom__set__visc_1_1set__visc__cs_1a20768c8872b3eab25e59dfe7c5ff62a0" kindref="member">set_visc_cs.hbbl</ref> of the model, adding the amplitude of tides <ref refid="structmom__set__visc_1_1set__visc__cs_1a765c0eec288ee86e83afc501b757a821" kindref="member">set_visc_cs.tideamp</ref> and a constant <ref refid="structmom__set__visc_1_1set__visc__cs_1a8e5f72291c7e5c5e602c9b4765d63ae0" kindref="member">set_visc_cs.drag_bg_vel</ref>. For these calculations the vertical grid at the velocity component locations is found by <formula id="462">\[ \begin{array}{ll} \frac{2 h^- h^+}{h^- + h^+} &amp; u \left( h^+ - h^-\right) &gt;= 0 \\ \frac{1}{2} \left( h^- + h^+ \right) &amp; u \left( h^+ - h^-\right) &lt; 0 \end{array} \]</formula> which biases towards the thin cell if the thin cell is upwind. Biasing the grid toward thin upwind cells helps increase the effect of viscosity and inhibits flow out of these thin cells.</para><para>After diagnosing <formula id="460">$|U_{bbl}|$</formula> over a fixed depth an active viscous boundary layer thickness is found using the ideas of Killworth and Edwards, 1999 (hereafter KW99). KW99 solve the equation <formula id="463">\[ \left( \frac{h_{bbl}}{h_f} \right)^2 + \frac{h_{bbl}}{h_N} = 1 \]</formula> for the boundary layer depth <formula id="464">$h_{bbl}$</formula>. Here <formula id="465">\[ h_f = \frac{C_n u_*}{f} \]</formula> is the rotation controlled boundary layer depth in the absence of stratification. <formula id="466">$u_*$</formula> is the surface friction speed given by <formula id="467">\[ u_*^2 = C_d |U_{bbl}|^2 \]</formula> and is a function of near bottom model flow. <formula id="468">\[ h_N = \frac{C_i u_*}{N} = \frac{ (C_i u_* )^2 }{g^\prime} \]</formula> is the stratification controlled boundary layer depth. The non-dimensional parameters <formula id="469">$C_n=0.5$</formula> and <formula id="470">$C_i=20$</formula> are suggested by Zilitinkevich and Mironov, 1996.</para><para>If a Richardson number dependent mixing scheme is being used, as indicated by <ref refid="structmom__set__visc_1_1set__visc__cs_1abf6d0c52b4c7697848e11790fed715dc" kindref="member">set_visc_cs.rino_mix</ref>, then the boundary layer thickness is bounded to be no larger than a half of <ref refid="structmom__set__visc_1_1set__visc__cs_1a20768c8872b3eab25e59dfe7c5ff62a0" kindref="member">set_visc_cs.hbbl</ref> .</para><para><xrefsect id="todo_1_todo000007"><xreftitle>Todo</xreftitle><xrefdescription><para>Channel drag needs to be explained</para></xrefdescription></xrefsect></para><para>A BBL viscosity is calculated so that the no-slip boundary condition in the vertical viscosity solver implies the stress <formula id="471">$\mathbf{\tau}_b$</formula>.</para><sect2 id="namespacemom__set__visc_1set_viscous_BBL_ref">
<title>References</title>
<para><itemizedlist>
<listitem><para>Killworth, P. D., and N. R. Edwards, 1999: A Turbulent Bottom Boundary Layer Code for Use in Numerical Ocean Models. J. Phys. Oceanogr., 29, 1221-1238, <ulink url="https://doi.org/10.1175/1520-0485(1999)029&lt;1221:ATBBLC&gt;2.0.CO;2">doi:10.1175/1520-0485(1999)029&lt;1221:ATBBLC&gt;2.0.CO;2</ulink> </para></listitem>
<listitem><para>Zilitinkevich, S., Mironov, D.V., 1996: A multi-limit formulation for the equilibrium depth of a stably stratified boundary layer. Boundary-Layer Meteorology 81, 325-351. <ulink url="https://doi.org/10.1007/BF02430334">doi:10.1007/BF02430334</ulink></para></listitem>
</itemizedlist>
<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="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="in">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="inout">visc</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing vertical viscosities and related fields.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure returned by a previous call to set_visc_init.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">symmetrize</parametername>
</parameternamelist>
<parameterdescription>
<para>If present and true, do extra calculations of those values in visc that would be calculated with symmetric memory. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para></sect2>
</sect1>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" line="192" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" bodystart="193" bodyend="1111"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <references refid="namespacemom__set__visc_1a46583b82467e74d8654c3c0a037a25cd" compoundref="MOM__set__viscosity_8F90" startline="1160" endline="1199">set_u_at_v</references>
        <references refid="namespacemom__set__visc_1a0356a4e81cca9f7f31bbf87c717a6600" compoundref="MOM__set__viscosity_8F90" startline="1116" endline="1155">set_v_at_u</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__set__visc_1a0356a4e81cca9f7f31bbf87c717a6600" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function</type>
        <definition>real function mom_set_visc::set_v_at_u</definition>
        <argsstring>(v, h, G, i, j, k, mask2dCv, OBC)</argsstring>
        <name>set_v_at_u</name>
        <param>
          <type>v</type>
          <defname>v</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>i</type>
          <defname>i</defname>
        </param>
        <param>
          <type>j</type>
          <defname>j</defname>
        </param>
        <param>
          <type>k</type>
          <defname>k</defname>
        </param>
        <param>
          <type>mask2dCv</type>
          <defname>mask2dCv</defname>
        </param>
        <param>
          <type>OBC</type>
          <defname>OBC</defname>
        </param>
        <briefdescription>
<para>This subroutine finds a thickness-weighted value of v at the u-points. </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">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="in">i</parametername>
</parameternamelist>
<parameterdescription>
<para>The i-index of the u-location to work on.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">j</parametername>
</parameternamelist>
<parameterdescription>
<para>The j-index of the u-location to work on.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">k</parametername>
</parameternamelist>
<parameterdescription>
<para>The k-index of the u-location to work on.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">mask2dcv</parametername>
</parameternamelist>
<parameterdescription>
<para>A multiplicative mask of the v-points</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obc</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to an open boundary condition structure</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The return value of v at u points points in the same units as u, i.e. [L T-1 ~&gt; m s-1] or other units. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" line="1115" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" bodystart="1116" bodyend="1155"/>
        <referencedby refid="namespacemom__set__visc_1a9865113fe07928e7a240c2868ed45e5f" compoundref="MOM__set__viscosity_8F90" startline="193" endline="1111">set_viscous_bbl</referencedby>
        <referencedby refid="namespacemom__set__visc_1aba41cd4f8baa1cda9036d97087ce8a22" compoundref="MOM__set__viscosity_8F90" startline="1208" endline="1882">set_viscous_ml</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__set__visc_1a46583b82467e74d8654c3c0a037a25cd" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function</type>
        <definition>real function mom_set_visc::set_u_at_v</definition>
        <argsstring>(u, h, G, i, j, k, mask2dCu, OBC)</argsstring>
        <name>set_u_at_v</name>
        <param>
          <type>u</type>
          <defname>u</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>i</type>
          <defname>i</defname>
        </param>
        <param>
          <type>j</type>
          <defname>j</defname>
        </param>
        <param>
          <type>k</type>
          <defname>k</defname>
        </param>
        <param>
          <type>mask2dCu</type>
          <defname>mask2dCu</defname>
        </param>
        <param>
          <type>OBC</type>
          <defname>OBC</defname>
        </param>
        <briefdescription>
<para>This subroutine finds a thickness-weighted value of u at the v-points. </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">u</parametername>
</parameternamelist>
<parameterdescription>
<para>The zonal velocity [L T-1 ~&gt; m s-1] or other units.</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="in">i</parametername>
</parameternamelist>
<parameterdescription>
<para>The i-index of the u-location to work on.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">j</parametername>
</parameternamelist>
<parameterdescription>
<para>The j-index of the u-location to work on.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">k</parametername>
</parameternamelist>
<parameterdescription>
<para>The k-index of the u-location to work on.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">mask2dcu</parametername>
</parameternamelist>
<parameterdescription>
<para>A multiplicative mask of the u-points</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obc</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to an open boundary condition structure</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The return value of u at v points in the same units as u, i.e. [L T-1 ~&gt; m s-1] or other units. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" line="1159" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" bodystart="1160" bodyend="1199"/>
        <referencedby refid="namespacemom__set__visc_1a9865113fe07928e7a240c2868ed45e5f" compoundref="MOM__set__viscosity_8F90" startline="193" endline="1111">set_viscous_bbl</referencedby>
        <referencedby refid="namespacemom__set__visc_1aba41cd4f8baa1cda9036d97087ce8a22" compoundref="MOM__set__viscosity_8F90" startline="1208" endline="1882">set_viscous_ml</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__set__visc_1aba41cd4f8baa1cda9036d97087ce8a22" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_set_visc::set_viscous_ml</definition>
        <argsstring>(u, v, h, tv, forces, visc, dt, G, GV, US, CS, symmetrize)</argsstring>
        <name>set_viscous_ml</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>forces</type>
          <defname>forces</defname>
        </param>
        <param>
          <type>visc</type>
          <defname>visc</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>symmetrize</type>
          <defname>symmetrize</defname>
        </param>
        <briefdescription>
<para>Calculates the thickness of the surface boundary layer for applying an elevated viscosity. </para>        </briefdescription>
        <detaileddescription>
<para>A bulk Richardson criterion or the thickness of the topmost NKML layers (with a bulk mixed layer) are currently used. The thicknesses are given in terms of fractional layers, so that this thickness will move as the thickness of the topmost layers change.</para><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="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="in">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">forces</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure with the driving mechanical forces</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">visc</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing vertical viscosities and related fields.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>Time increment [T ~&gt; s].</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure returned by a previous call to set_visc_init.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">symmetrize</parametername>
</parameternamelist>
<parameterdescription>
<para>If present and true, do extra calculations of those values in visc that would be calculated with symmetric memory. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" line="1207" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" bodystart="1208" bodyend="1882"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <references refid="namespacemom__set__visc_1a46583b82467e74d8654c3c0a037a25cd" compoundref="MOM__set__viscosity_8F90" startline="1160" endline="1199">set_u_at_v</references>
        <references refid="namespacemom__set__visc_1a0356a4e81cca9f7f31bbf87c717a6600" compoundref="MOM__set__viscosity_8F90" startline="1116" endline="1155">set_v_at_u</references>
        <referencedby refid="namespacemom__dynamics__split__rk2_1a976e700971f232fc11bc69b31d611c32" compoundref="MOM__dynamics__split__RK2_8F90" startline="245" endline="994">mom_dynamics_split_rk2::step_mom_dyn_split_rk2</referencedby>
        <referencedby refid="namespacemom__dynamics__unsplit_1ab72d911d187f9247b6cc72d87e815370" compoundref="MOM__dynamics__unsplit_8F90" startline="192" endline="507">mom_dynamics_unsplit::step_mom_dyn_unsplit</referencedby>
        <referencedby refid="namespacemom__dynamics__unsplit__rk2_1a25424d65cc3339442e528c0a92b173a3" compoundref="MOM__dynamics__unsplit__RK2_8F90" startline="194" endline="452">mom_dynamics_unsplit_rk2::step_mom_dyn_unsplit_rk2</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__set__visc_1ae2d9d9f74c1e9aec56257cfad372b0fd" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_set_visc::set_visc_register_restarts</definition>
        <argsstring>(HI, GV, param_file, visc, restart_CS)</argsstring>
        <name>set_visc_register_restarts</name>
        <param>
          <type>HI</type>
          <defname>HI</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>visc</type>
          <defname>visc</defname>
        </param>
        <param>
          <type>restart_CS</type>
          <defname>restart_CS</defname>
        </param>
        <briefdescription>
<para>Register any fields associated with the vertvisc_type. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hi</parametername>
</parameternamelist>
<parameterdescription>
<para>A horizontal index type 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">visc</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing vertical viscosities and related fields. Allocated here.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>restart_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the restart control structure. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" line="1886" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" bodystart="1887" bodyend="1968"/>
        <references refid="namespacemom__cvmix__conv_1a5e741c84ad14fae3e5801d00a9867bba" compoundref="MOM__CVMix__conv_8F90" startline="306" endline="309">mom_cvmix_conv::cvmix_conv_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__kappa__shear_1ad4d87b0928aea195213e682b493eb555" compoundref="MOM__kappa__shear_8F90" startline="1975" endline="1991">mom_kappa_shear::kappa_shear_at_vertex</references>
        <references refid="namespacemom__kappa__shear_1ac7859c609e462000ca8fd763d68d141e" compoundref="MOM__kappa__shear_8F90" startline="1961" endline="1968">mom_kappa_shear::kappa_shear_is_used</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__set__visc_1a2ec9be1a61c7d4a062aab4ff03e3ca29" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_set_visc::set_visc_init</definition>
        <argsstring>(Time, G, GV, US, param_file, diag, visc, CS, restart_CS, OBC)</argsstring>
        <name>set_visc_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>visc</type>
          <defname>visc</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>restart_CS</type>
          <defname>restart_CS</defname>
        </param>
        <param>
          <type>OBC</type>
          <defname>OBC</defname>
        </param>
        <briefdescription>
<para>Initializes the MOM_set_visc 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="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="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 that is used to regulate diagnostic output.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">visc</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing vertical viscosities and related fields. Allocated here.</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>
<parameteritem>
<parameternamelist>
<parametername>restart_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the restart control structure.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obc</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to an open boundary condition structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" line="1972" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" bodystart="1973" bodyend="2310"/>
        <references refid="namespacemom__kappa__shear_1ad4d87b0928aea195213e682b493eb555" compoundref="MOM__kappa__shear_8F90" startline="1975" endline="1991">mom_kappa_shear::kappa_shear_at_vertex</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__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <references refid="namespacemom__restart_1ab507e13911b906934fd4ff6dbf183cfd" compoundref="MOM__restart_8F90" startline="139" endline="145">mom_restart::register_restart_field_as_obsolete</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__set__visc_1abbac7a7410557759c74444787de415a9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_set_visc::set_visc_end</definition>
        <argsstring>(visc, CS)</argsstring>
        <name>set_visc_end</name>
        <param>
          <type>visc</type>
          <defname>visc</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>This subroutine dellocates any memory in the set_visc control structure. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">visc</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing vertical viscosities and related fields. Elements are deallocated here.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure returned by a previous call to set_visc_init. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" line="2314" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" bodystart="2315" bodyend="2345"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Calculates various values related to the bottom boundary layer, such as the viscosity and thickness of the BBL (set_viscous_BBL). </para>    </briefdescription>
    <detaileddescription>
<para>This would also be the module in which other viscous quantities that are flow-independent might be set. This information is transmitted to other modules via a vertvisc type structure.</para><para>The same code is used for the two velocity components, by indirectly referencing the velocities and defining a handful of direction-specific defined variables. </para>    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_set_viscosity.F90" line="3" column="1"/>
  </compounddef>
</doxygen>
