<?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__opacity" kind="namespace" language="Fortran">
    <compoundname>mom_opacity</compoundname>
    <innerclass refid="structmom__opacity_1_1opacity__cs" prot="public">mom_opacity::opacity_cs</innerclass>
    <innerclass refid="structmom__opacity_1_1optics__type" prot="public">mom_opacity::optics_type</innerclass>
      <sectiondef kind="user-defined">
      <memberdef kind="variable" id="namespacemom__opacity_1a948b6b8f52bd40409385ee13f68c9626" prot="public" static="no" mutable="no">
        <type>integer, parameter</type>
        <definition>integer, parameter mom_opacity::no_scheme</definition>
        <argsstring></argsstring>
        <name>no_scheme</name>
        <initializer>= 0</initializer>
        <briefdescription>
<para>Coded integers to specify the opacity scheme. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="77" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="77" bodyend="77"/>
        <referencedby refid="namespacemom__opacity_1a39fce7bd33a469e3e9fe7cfeb51825b5" compoundref="MOM__opacity_8F90" startline="920" endline="1114">opacity_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__opacity_1a28a3fe4f0c5e8c81882449450f6ba785" prot="private" static="no" mutable="no">
        <type>integer, parameter</type>
        <definition>integer, parameter mom_opacity::manizza_05</definition>
        <argsstring></argsstring>
        <name>manizza_05</name>
        <initializer>= 1</initializer>
        <briefdescription>
<para>Coded integers to specify the opacity scheme. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="77" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="77" bodyend="-1"/>
        <referencedby refid="namespacemom__opacity_1aa14b4bfe45861d86740c24e474ce682c" compoundref="MOM__opacity_8F90" startline="222" endline="390">opacity_from_chl</referencedby>
        <referencedby refid="namespacemom__opacity_1a39fce7bd33a469e3e9fe7cfeb51825b5" compoundref="MOM__opacity_8F90" startline="920" endline="1114">opacity_init</referencedby>
        <referencedby refid="namespacemom__opacity_1a05ef9c5d86adff869fad832f3083bba4" compoundref="MOM__opacity_8F90" startline="93" endline="214">set_opacity</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__opacity_1aa47b1866014e588f0306199f7ea7e73d" prot="private" static="no" mutable="no">
        <type>integer, parameter</type>
        <definition>integer, parameter mom_opacity::morel_88</definition>
        <argsstring></argsstring>
        <name>morel_88</name>
        <initializer>= 2</initializer>
        <briefdescription>
<para>Coded integers to specify the opacity scheme. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="77" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="77" bodyend="-1"/>
        <referencedby refid="namespacemom__opacity_1aa14b4bfe45861d86740c24e474ce682c" compoundref="MOM__opacity_8F90" startline="222" endline="390">opacity_from_chl</referencedby>
        <referencedby refid="namespacemom__opacity_1a39fce7bd33a469e3e9fe7cfeb51825b5" compoundref="MOM__opacity_8F90" startline="920" endline="1114">opacity_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__opacity_1a77646ea3d3da72b4e00694b7a121a771" prot="private" static="no" mutable="no">
        <type>integer, parameter</type>
        <definition>integer, parameter mom_opacity::single_exp</definition>
        <argsstring></argsstring>
        <name>single_exp</name>
        <initializer>= 3</initializer>
        <briefdescription>
<para>Coded integers to specify the opacity scheme. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="77" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="77" bodyend="-1"/>
        <referencedby refid="namespacemom__opacity_1a39fce7bd33a469e3e9fe7cfeb51825b5" compoundref="MOM__opacity_8F90" startline="920" endline="1114">opacity_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__opacity_1aba8c34bcba1b2f2d80a48cd7bce261ec" prot="private" static="no" mutable="no">
        <type>integer, parameter</type>
        <definition>integer, parameter mom_opacity::double_exp</definition>
        <argsstring></argsstring>
        <name>double_exp</name>
        <initializer>= 4</initializer>
        <briefdescription>
<para>Coded integers to specify the opacity scheme. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="77" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="77" bodyend="-1"/>
        <referencedby refid="namespacemom__opacity_1a39fce7bd33a469e3e9fe7cfeb51825b5" compoundref="MOM__opacity_8F90" startline="920" endline="1114">opacity_init</referencedby>
        <referencedby refid="namespacemom__opacity_1a05ef9c5d86adff869fad832f3083bba4" compoundref="MOM__opacity_8F90" startline="93" endline="214">set_opacity</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="var">
      <memberdef kind="variable" id="namespacemom__opacity_1aecb5a81b64d808f474cb4e5c722dc76b" prot="private" static="no" mutable="no">
        <type><ref refid="version__variable_8h_1acda997fe1761de4c6bca0f27dc786964" kindref="member">character</ref> *(10), parameter</type>
        <definition>character*(10), parameter mom_opacity::manizza_05_string</definition>
        <argsstring></argsstring>
        <name>manizza_05_string</name>
        <initializer>= &quot;MANIZZA_05&quot;</initializer>
        <briefdescription>
<para>String to specify the opacity scheme. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="80" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="80" bodyend="80"/>
        <referencedby refid="namespacemom__opacity_1a39fce7bd33a469e3e9fe7cfeb51825b5" compoundref="MOM__opacity_8F90" startline="920" endline="1114">opacity_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__opacity_1a5e5e40ad5acbf12058294f2ea17a7368" prot="private" static="no" mutable="no">
        <type><ref refid="version__variable_8h_1acda997fe1761de4c6bca0f27dc786964" kindref="member">character</ref> *(10), parameter</type>
        <definition>character*(10), parameter mom_opacity::morel_88_string</definition>
        <argsstring></argsstring>
        <name>morel_88_string</name>
        <initializer>= &quot;MOREL_88&quot;</initializer>
        <briefdescription>
<para>String to specify the opacity scheme. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="81" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="81" bodyend="81"/>
        <referencedby refid="namespacemom__opacity_1a39fce7bd33a469e3e9fe7cfeb51825b5" compoundref="MOM__opacity_8F90" startline="920" endline="1114">opacity_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__opacity_1ad430c567c09952e6ecfd07d6c05c8f69" prot="private" static="no" mutable="no">
        <type><ref refid="version__variable_8h_1acda997fe1761de4c6bca0f27dc786964" kindref="member">character</ref> *(10), parameter</type>
        <definition>character*(10), parameter mom_opacity::single_exp_string</definition>
        <argsstring></argsstring>
        <name>single_exp_string</name>
        <initializer>= &quot;SINGLE_EXP&quot;</initializer>
        <briefdescription>
<para>String to specify the opacity scheme. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="82" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="82" bodyend="82"/>
        <referencedby refid="namespacemom__opacity_1a39fce7bd33a469e3e9fe7cfeb51825b5" compoundref="MOM__opacity_8F90" startline="920" endline="1114">opacity_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__opacity_1a5a3d62dfb71c22ac0b13a312c8d23c70" prot="private" static="no" mutable="no">
        <type><ref refid="version__variable_8h_1acda997fe1761de4c6bca0f27dc786964" kindref="member">character</ref> *(10), parameter</type>
        <definition>character*(10), parameter mom_opacity::double_exp_string</definition>
        <argsstring></argsstring>
        <name>double_exp_string</name>
        <initializer>= &quot;DOUBLE_EXP&quot;</initializer>
        <briefdescription>
<para>String to specify the opacity scheme. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="83" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="83" bodyend="83"/>
        <referencedby refid="namespacemom__opacity_1a39fce7bd33a469e3e9fe7cfeb51825b5" compoundref="MOM__opacity_8F90" startline="920" endline="1114">opacity_init</referencedby>
      </memberdef>
      <memberdef kind="variable" id="namespacemom__opacity_1a9e2e33c15dd65f100263da9efc0934a6" prot="private" static="no" mutable="no">
        <type>real, parameter</type>
        <definition>real, parameter mom_opacity::op_diag_len</definition>
        <argsstring></argsstring>
        <name>op_diag_len</name>
        <initializer>= 1e-10</initializer>
        <briefdescription>
<para>Lengthscale L used to remap opacity from op to 1/L * tanh(op * L) </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="85" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="85" bodyend="85"/>
        <referencedby refid="namespacemom__opacity_1a05ef9c5d86adff869fad832f3083bba4" compoundref="MOM__opacity_8F90" startline="93" endline="214">set_opacity</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__opacity_1a05ef9c5d86adff869fad832f3083bba4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_opacity::set_opacity</definition>
        <argsstring>(optics, sw_total, sw_vis_dir, sw_vis_dif, sw_nir_dir, sw_nir_dif, G, GV, US, CS, chl_2d, chl_3d)</argsstring>
        <name>set_opacity</name>
        <param>
          <type>optics</type>
          <defname>optics</defname>
        </param>
        <param>
          <type>sw_total</type>
          <defname>sw_total</defname>
        </param>
        <param>
          <type>sw_vis_dir</type>
          <defname>sw_vis_dir</defname>
        </param>
        <param>
          <type>sw_vis_dif</type>
          <defname>sw_vis_dif</defname>
        </param>
        <param>
          <type>sw_nir_dir</type>
          <defname>sw_nir_dir</defname>
        </param>
        <param>
          <type>sw_nir_dif</type>
          <defname>sw_nir_dif</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>chl_2d</type>
          <defname>chl_2d</defname>
        </param>
        <param>
          <type>chl_3d</type>
          <defname>chl_3d</defname>
        </param>
        <briefdescription>
<para>This sets the opacity of sea water based based on one of several different schemes. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">optics</parametername>
</parameternamelist>
<parameterdescription>
<para>An optics structure that has values set based on the opacities. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sw_total</parametername>
</parameternamelist>
<parameterdescription>
<para>Total shortwave flux into the ocean [Q R Z T-1 ~&gt; W m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sw_vis_dir</parametername>
</parameternamelist>
<parameterdescription>
<para>Visible, direct shortwave into the ocean [Q R Z T-1 ~&gt; W m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sw_vis_dif</parametername>
</parameternamelist>
<parameterdescription>
<para>Visible, diffuse shortwave into the ocean [Q R Z T-1 ~&gt; W m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sw_nir_dir</parametername>
</parameternamelist>
<parameterdescription>
<para>Near-IR, direct shortwave into the ocean [Q R Z T-1 ~&gt; W m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sw_nir_dif</parametername>
</parameternamelist>
<parameterdescription>
<para>Near-IR, diffuse shortwave into the ocean [Q R Z T-1 ~&gt; W m-2] </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>The control structure earlier set up by opacity_init. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">chl_2d</parametername>
</parameternamelist>
<parameterdescription>
<para>Vertically uniform chlorophyll-A concentractions [mg m-3] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">chl_3d</parametername>
</parameternamelist>
<parameterdescription>
<para>The chlorophyll-A concentractions of each layer [mg m-3] </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="91" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="93" bodyend="214"/>
        <references refid="namespacemom__opacity_1aba8c34bcba1b2f2d80a48cd7bce261ec" compoundref="MOM__opacity_8F90" startline="77">double_exp</references>
        <references refid="namespacemom__opacity_1a28a3fe4f0c5e8c81882449450f6ba785" compoundref="MOM__opacity_8F90" startline="77">manizza_05</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__opacity_1a9e2e33c15dd65f100263da9efc0934a6" compoundref="MOM__opacity_8F90" startline="85" endline="85">op_diag_len</references>
        <references refid="namespacemom__opacity_1aa14b4bfe45861d86740c24e474ce682c" compoundref="MOM__opacity_8F90" startline="222" endline="390">opacity_from_chl</references>
        <references refid="namespacemom__diag__mediator_1a0be5d1cbc6c6f8f63950ce7d9bc6455a" compoundref="MOM__diag__mediator_8F90" startline="1916" endline="1923">mom_diag_mediator::query_averaging_enabled</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__opacity_1aa14b4bfe45861d86740c24e474ce682c" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_opacity::opacity_from_chl</definition>
        <argsstring>(optics, sw_total, sw_vis_dir, sw_vis_dif, sw_nir_dir, sw_nir_dif, G, GV, US, CS, chl_2d, chl_3d)</argsstring>
        <name>opacity_from_chl</name>
        <param>
          <type>optics</type>
          <defname>optics</defname>
        </param>
        <param>
          <type>sw_total</type>
          <defname>sw_total</defname>
        </param>
        <param>
          <type>sw_vis_dir</type>
          <defname>sw_vis_dir</defname>
        </param>
        <param>
          <type>sw_vis_dif</type>
          <defname>sw_vis_dif</defname>
        </param>
        <param>
          <type>sw_nir_dir</type>
          <defname>sw_nir_dir</defname>
        </param>
        <param>
          <type>sw_nir_dif</type>
          <defname>sw_nir_dif</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>chl_2d</type>
          <defname>chl_2d</defname>
        </param>
        <param>
          <type>chl_3d</type>
          <defname>chl_3d</defname>
        </param>
        <briefdescription>
<para>This sets the &quot;blue&quot; band opacity based on chloophyll A concencentrations The red portion is lumped into the net heating at the surface. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">optics</parametername>
</parameternamelist>
<parameterdescription>
<para>An optics structure that has values set based on the opacities. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sw_total</parametername>
</parameternamelist>
<parameterdescription>
<para>Total shortwave flux into the ocean [Q R Z T-1 ~&gt; W m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sw_vis_dir</parametername>
</parameternamelist>
<parameterdescription>
<para>Visible, direct shortwave into the ocean [Q R Z T-1 ~&gt; W m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sw_vis_dif</parametername>
</parameternamelist>
<parameterdescription>
<para>Visible, diffuse shortwave into the ocean [Q R Z T-1 ~&gt; W m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sw_nir_dir</parametername>
</parameternamelist>
<parameterdescription>
<para>Near-IR, direct shortwave into the ocean [Q R Z T-1 ~&gt; W m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sw_nir_dif</parametername>
</parameternamelist>
<parameterdescription>
<para>Near-IR, diffuse shortwave into the ocean [Q R Z T-1 ~&gt; W m-2] </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>The control structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">chl_2d</parametername>
</parameternamelist>
<parameterdescription>
<para>Vertically uniform chlorophyll-A concentractions [mg m-3] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">chl_3d</parametername>
</parameternamelist>
<parameterdescription>
<para>A 3-d field of chlorophyll-A concentractions [mg m-3] </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="220" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="222" bodyend="390"/>
        <references refid="namespacemom__opacity_1a28a3fe4f0c5e8c81882449450f6ba785" compoundref="MOM__opacity_8F90" startline="77">manizza_05</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__opacity_1aa47b1866014e588f0306199f7ea7e73d" compoundref="MOM__opacity_8F90" startline="77">morel_88</references>
        <references refid="namespacemom__opacity_1a4498b4bb6fcf1b7d849f89aa87c0332e" compoundref="MOM__opacity_8F90" startline="396" endline="410">opacity_morel</references>
        <references refid="namespacemom__opacity_1a0017241c03e4536115674fc5fc9608bf" compoundref="MOM__opacity_8F90" startline="416" endline="430">sw_pen_frac_morel</references>
        <referencedby refid="namespacemom__opacity_1a05ef9c5d86adff869fad832f3083bba4" compoundref="MOM__opacity_8F90" startline="93" endline="214">set_opacity</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__opacity_1a4498b4bb6fcf1b7d849f89aa87c0332e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function, public</type>
        <definition>real function, public mom_opacity::opacity_morel</definition>
        <argsstring>(chl_data)</argsstring>
        <name>opacity_morel</name>
        <param>
          <type>chl_data</type>
          <defname>chl_data</defname>
        </param>
        <briefdescription>
<para>This sets the blue-wavelength opacity according to the scheme proposed by Morel and Antoine (1994). </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">chl_data</parametername>
</parameternamelist>
<parameterdescription>
<para>The chlorophyll-A concentration in mg m-3. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The returned opacity [m-1] </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="395" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="396" bodyend="410"/>
        <referencedby refid="namespacemom__opacity_1aa14b4bfe45861d86740c24e474ce682c" compoundref="MOM__opacity_8F90" startline="222" endline="390">opacity_from_chl</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__opacity_1a0017241c03e4536115674fc5fc9608bf" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function</type>
        <definition>real function mom_opacity::sw_pen_frac_morel</definition>
        <argsstring>(chl_data)</argsstring>
        <name>sw_pen_frac_morel</name>
        <param>
          <type>chl_data</type>
          <defname>chl_data</defname>
        </param>
        <briefdescription>
<para>This sets the penetrating shortwave fraction according to the scheme proposed by Morel and Antoine (1994). </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">chl_data</parametername>
</parameternamelist>
<parameterdescription>
<para>The chlorophyll-A concentration in mg m-3. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The returned penetrating shortwave fraction [nondim] </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="415" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="416" bodyend="430"/>
        <referencedby refid="namespacemom__opacity_1aa14b4bfe45861d86740c24e474ce682c" compoundref="MOM__opacity_8F90" startline="222" endline="390">opacity_from_chl</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__opacity_1a27873e3942c2ff7980cf516944f78f03" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function, public</type>
        <definition>real function, public mom_opacity::opacity_manizza</definition>
        <argsstring>(chl_data)</argsstring>
        <name>opacity_manizza</name>
        <param>
          <type>chl_data</type>
          <defname>chl_data</defname>
        </param>
        <briefdescription>
<para>This sets the blue-wavelength opacity according to the scheme proposed by Manizza, M. et al, 2005. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">chl_data</parametername>
</parameternamelist>
<parameterdescription>
<para>The chlorophyll-A concentration in mg m-3. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The returned opacity [m-1] </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="435" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="436" bodyend="440"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__opacity_1a4c1942f798619a9ad854d1152ebcab63" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_opacity::extract_optics_slice</definition>
        <argsstring>(optics, j, G, GV, opacity, opacity_scale, penSW_top, penSW_scale)</argsstring>
        <name>extract_optics_slice</name>
        <param>
          <type>optics</type>
          <defname>optics</defname>
        </param>
        <param>
          <type>j</type>
          <defname>j</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>opacity</type>
          <defname>opacity</defname>
        </param>
        <param>
          <type>opacity_scale</type>
          <defname>opacity_scale</defname>
        </param>
        <param>
          <type>penSW_top</type>
          <defname>penSW_top</defname>
        </param>
        <param>
          <type>penSW_scale</type>
          <defname>penSW_scale</defname>
        </param>
        <briefdescription>
<para>This subroutine returns a 2-d slice at constant j of fields from an <ref refid="structmom__opacity_1_1optics__type" kindref="compound">optics_type</ref>, with the potential for rescaling these fields. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">optics</parametername>
</parameternamelist>
<parameterdescription>
<para>An optics structure that has values of opacities and shortwave fluxes. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">j</parametername>
</parameternamelist>
<parameterdescription>
<para>j-index to extract </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="out">opacity</parametername>
</parameternamelist>
<parameterdescription>
<para>The opacity in each band, i-point, and layer </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">opacity_scale</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor by which to rescale the opacity. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">pensw_top</parametername>
</parameternamelist>
<parameterdescription>
<para>The shortwave radiation [Q R Z T-1 ~&gt; W m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pensw_scale</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor by which to rescale the shortwave flux. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="445" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="446" bodyend="479"/>
        <referencedby refid="namespacemom__bulk__mixed__layer_1ad6b69cad68bd88aa1deee0481fd3cc59" compoundref="MOM__bulk__mixed__layer_8F90" startline="190" endline="798">mom_bulk_mixed_layer::bulkmixedlayer</referencedby>
        <referencedby refid="namespacemom__forcing__type_1a6bf986155aba959222a117ca40ba7e0d" compoundref="MOM__forcing__type_8F90" startline="365" endline="819">mom_forcing_type::extractfluxes1d</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__opacity_1aefdfc303272a4f4fc07f84a8aea2b0f1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_opacity::extract_optics_fields</definition>
        <argsstring>(optics, nbands)</argsstring>
        <name>extract_optics_fields</name>
        <param>
          <type>optics</type>
          <defname>optics</defname>
        </param>
        <param>
          <type>nbands</type>
          <defname>nbands</defname>
        </param>
        <briefdescription>
<para>Set arguments to fields from the optics type. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">optics</parametername>
</parameternamelist>
<parameterdescription>
<para>An optics structure that has values of opacities and shortwave fluxes. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">nbands</parametername>
</parameternamelist>
<parameterdescription>
<para>The number of penetrating bands of SW radiation </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="483" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="484" bodyend="489"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__opacity_1a349c6934f113d238e4e2ef229b931a0c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>integer function, public</type>
        <definition>integer function, public mom_opacity::optics_nbands</definition>
        <argsstring>(optics)</argsstring>
        <name>optics_nbands</name>
        <param>
          <type>optics</type>
          <defname>optics</defname>
        </param>
        <briefdescription>
<para>Return the number of bands of penetrating shortwave radiation. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">optics</parametername>
</parameternamelist>
<parameterdescription>
<para>An optics structure that has values of opacities and shortwave fluxes. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The number of penetrating bands of SW radiation </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="493" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="494" bodyend="498"/>
        <referencedby refid="namespacemom__forcing__type_1a406a512f0d5b45c873fa91110ca7c387" compoundref="MOM__forcing__type_8F90" startline="889" endline="978">mom_forcing_type::calculatebuoyancyflux1d</referencedby>
        <referencedby refid="namespacemom__forcing__type_1ae84373c4a259bd04330ec673af0fa536" compoundref="MOM__forcing__type_8F90" startline="986" endline="1016">mom_forcing_type::calculatebuoyancyflux2d</referencedby>
        <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__forcing__type_1a6bf986155aba959222a117ca40ba7e0d" compoundref="MOM__forcing__type_8F90" startline="365" endline="819">mom_forcing_type::extractfluxes1d</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__opacity_1a21db9da24cea8b875040ba1e7e8b2e9b" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_opacity::absorbremainingsw</definition>
        <argsstring>(G, GV, US, h, opacity_band, nsw, optics, j, dt, H_limit_fluxes, adjustAbsorptionProfile, absorbAllSW, T, Pen_SW_bnd, eps, ksort, htot, Ttot, TKE, dSV_dT)</argsstring>
        <name>absorbremainingsw</name>
        <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>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>opacity_band</type>
          <defname>opacity_band</defname>
        </param>
        <param>
          <type>nsw</type>
          <defname>nsw</defname>
        </param>
        <param>
          <type>optics</type>
          <defname>optics</defname>
        </param>
        <param>
          <type>j</type>
          <defname>j</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>H_limit_fluxes</type>
          <defname>H_limit_fluxes</defname>
        </param>
        <param>
          <type>adjustAbsorptionProfile</type>
          <defname>adjustAbsorptionProfile</defname>
        </param>
        <param>
          <type>absorbAllSW</type>
          <defname>absorbAllSW</defname>
        </param>
        <param>
          <type>T</type>
          <defname>T</defname>
        </param>
        <param>
          <type>Pen_SW_bnd</type>
          <defname>Pen_SW_bnd</defname>
        </param>
        <param>
          <type>eps</type>
          <defname>eps</defname>
        </param>
        <param>
          <type>ksort</type>
          <defname>ksort</defname>
        </param>
        <param>
          <type>htot</type>
          <defname>htot</defname>
        </param>
        <param>
          <type>Ttot</type>
          <defname>Ttot</defname>
        </param>
        <param>
          <type>TKE</type>
          <defname>TKE</defname>
        </param>
        <param>
          <type>dSV_dT</type>
          <defname>dSV_dT</defname>
        </param>
        <briefdescription>
<para>Apply shortwave heating below the boundary layer (when running with the bulk mixed layer inhereted from GOLD) or throughout the water column. </para>
        </briefdescription>
        <detaileddescription>
<para>In addition, it causes all of the remaining SW radiation to be absorbed, provided that the total water column thickness is greater than H_limit_fluxes. For thinner water columns, the heating is scaled down proportionately, the assumption being that the remaining heating (which is left in Pen_SW) should go into an (absent for now) ocean bottom sediment layer. <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">nsw</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of bands of penetrating shortwave radiation. </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">opacity_band</parametername>
</parameternamelist>
<parameterdescription>
<para>Opacity in each band of penetrating shortwave radiation [H-1 ~&gt; m-1 or m2 kg-1]. The indicies are band, i, k. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">optics</parametername>
</parameternamelist>
<parameterdescription>
<para>An optics structure that has values of opacities and shortwave fluxes. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">j</parametername>
</parameternamelist>
<parameterdescription>
<para>j-index to work on. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>Time step [T ~&gt; s]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_limit_fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>If the total ocean depth is less than this, they are scaled away to avoid numerical instabilities [H ~&gt; m or kg m-2]. This would not be necessary if a finite heat capacity mud-layer were added. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">adjustabsorptionprofile</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, apply heating above the layers in which it should have occurred to get the correct mean depth (and potential energy change) of the shortwave that should be absorbed by each layer. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">absorballsw</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, apply heating above the layers in which it should have occurred to get the correct mean depth (and potential energy change) of the shortwave that should be absorbed by each layer. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">t</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer potential/conservative temperatures [degC] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">pen_sw_bnd</parametername>
</parameternamelist>
<parameterdescription>
<para>Penetrating shortwave heating in each band that hits the bottom and will will be redistributed through the water column [degC H ~&gt; degC m or degC kg m-2], size nsw x G isd: G ied. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">eps</parametername>
</parameternamelist>
<parameterdescription>
<para>Small thickness that must remain in each layer, and which will not be subject to heating [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ksort</parametername>
</parameternamelist>
<parameterdescription>
<para>Density-sorted k-indicies. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">htot</parametername>
</parameternamelist>
<parameterdescription>
<para>Total mixed layer thickness [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">ttot</parametername>
</parameternamelist>
<parameterdescription>
<para>Depth integrated mixed layer temperature [degC H ~&gt; degC m or degC kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dsv_dt</parametername>
</parameternamelist>
<parameterdescription>
<para>The partial derivative of specific volume with temperature [R-1 degC-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tke</parametername>
</parameternamelist>
<parameterdescription>
<para>The TKE sink from mixing the heating throughout a layer [R Z3 T-2 ~&gt; J m-2]. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="508" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="511" bodyend="772"/>
        <referencedby refid="namespacemom__diabatic__aux_1ae7a279c765fa370c302532c13a1adaca" compoundref="MOM__diabatic__aux_8F90" startline="932" endline="1476">mom_diabatic_aux::applyboundaryfluxesinout</referencedby>
        <referencedby refid="namespacemom__bulk__mixed__layer_1ad6b69cad68bd88aa1deee0481fd3cc59" compoundref="MOM__bulk__mixed__layer_8F90" startline="190" endline="798">mom_bulk_mixed_layer::bulkmixedlayer</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__opacity_1ad27db4bd0d010d98a3f5a54902c7a05e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_opacity::sumswoverbands</definition>
        <argsstring>(G, GV, US, h, nsw, optics, j, dt, H_limit_fluxes, absorbAllSW, iPen_SW_bnd, netPen)</argsstring>
        <name>sumswoverbands</name>
        <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>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>nsw</type>
          <defname>nsw</defname>
        </param>
        <param>
          <type>optics</type>
          <defname>optics</defname>
        </param>
        <param>
          <type>j</type>
          <defname>j</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>H_limit_fluxes</type>
          <defname>H_limit_fluxes</defname>
        </param>
        <param>
          <type>absorbAllSW</type>
          <defname>absorbAllSW</defname>
        </param>
        <param>
          <type>iPen_SW_bnd</type>
          <defname>iPen_SW_bnd</defname>
        </param>
        <param>
          <type>netPen</type>
          <defname>netPen</defname>
        </param>
        <briefdescription>
<para>This subroutine calculates the total shortwave heat flux integrated over bands as a function of depth. This routine is only called for computing buoyancy fluxes for use in KPP. This routine does not updat e the state. </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">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thicknesses [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">nsw</parametername>
</parameternamelist>
<parameterdescription>
<para>The number of bands of penetrating shortwave radiation, perhaps from optics_nbands(optics), </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">optics</parametername>
</parameternamelist>
<parameterdescription>
<para>An optics structure that has values set based on the opacities. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">j</parametername>
</parameternamelist>
<parameterdescription>
<para>j-index to work on. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>Time step [T ~&gt; s]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_limit_fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>the total depth at which the surface fluxes start to be limited to avoid excessive heating of a thin ocean [H ~&gt; m or kg m-2] </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">absorballsw</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, ensure that all shortwave radiation is absorbed in the ocean water column. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ipen_sw_bnd</parametername>
</parameternamelist>
<parameterdescription>
<para>The incident penetrating shortwave heating in each band that hits the bottom and will be redistributed through the water column [degC H ~&gt; degC m or degC kg m-2]; size nsw x G isd: G ied. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">netpen</parametername>
</parameternamelist>
<parameterdescription>
<para>Net penetrating shortwave heat flux at each </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="779" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="781" bodyend="913"/>
        <referencedby refid="namespacemom__forcing__type_1a406a512f0d5b45c873fa91110ca7c387" compoundref="MOM__forcing__type_8F90" startline="889" endline="978">mom_forcing_type::calculatebuoyancyflux1d</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__opacity_1a39fce7bd33a469e3e9fe7cfeb51825b5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_opacity::opacity_init</definition>
        <argsstring>(Time, G, GV, US, param_file, diag, CS, optics)</argsstring>
        <name>opacity_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>optics</type>
          <defname>optics</defname>
        </param>
        <briefdescription>
<para>This routine initalizes the opacity module, including an <ref refid="structmom__opacity_1_1optics__type" kindref="compound">optics_type</ref>. </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>model vertical grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>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>
<parameteritem>
<parameternamelist>
<parametername>optics</parametername>
</parameternamelist>
<parameterdescription>
<para>An optics structure that has parameters set and arrays allocated here. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="919" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="920" bodyend="1114"/>
        <references refid="namespacemom__opacity_1aba8c34bcba1b2f2d80a48cd7bce261ec" compoundref="MOM__opacity_8F90" startline="77">double_exp</references>
        <references refid="namespacemom__opacity_1a5a3d62dfb71c22ac0b13a312c8d23c70" compoundref="MOM__opacity_8F90" startline="83" endline="83">double_exp_string</references>
        <references refid="namespacemom__opacity_1a28a3fe4f0c5e8c81882449450f6ba785" compoundref="MOM__opacity_8F90" startline="77">manizza_05</references>
        <references refid="namespacemom__opacity_1aecb5a81b64d808f474cb4e5c722dc76b" compoundref="MOM__opacity_8F90" startline="80" endline="80">manizza_05_string</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__error__handler_1a1c462df7b61f1296407b4af51dfeceab" compoundref="MOM__error__handler_8F90" startline="53" endline="66">mom_error_handler::mom_mesg</references>
        <references refid="namespacemom__opacity_1aa47b1866014e588f0306199f7ea7e73d" compoundref="MOM__opacity_8F90" startline="77">morel_88</references>
        <references refid="namespacemom__opacity_1a5e5e40ad5acbf12058294f2ea17a7368" compoundref="MOM__opacity_8F90" startline="81" endline="81">morel_88_string</references>
        <references refid="namespacemom__opacity_1a948b6b8f52bd40409385ee13f68c9626" compoundref="MOM__opacity_8F90" startline="77" endline="77">no_scheme</references>
        <references refid="namespacemom__diag__mediator_1ada491446bf7216fe101e6b0f6ed551e1" compoundref="MOM__diag__mediator_8F90" startline="1944" endline="2177">mom_diag_mediator::register_diag_field</references>
        <references refid="namespacemom__opacity_1a77646ea3d3da72b4e00694b7a121a771" compoundref="MOM__opacity_8F90" startline="77">single_exp</references>
        <references refid="namespacemom__opacity_1ad430c567c09952e6ecfd07d6c05c8f69" compoundref="MOM__opacity_8F90" startline="82" endline="82">single_exp_string</references>
        <references refid="namespacemom__string__functions_1aca148baf726de2f028b7e7baad3c85d4" compoundref="MOM__string__functions_8F90" startline="44" endline="56">mom_string_functions::uppercase</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__opacity_1ab5c0caabbf8a806a95bcc416da673841" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_opacity::opacity_end</definition>
        <argsstring>(CS, optics)</argsstring>
        <name>opacity_end</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>optics</type>
          <defname>optics</defname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>An opacity control structure that should be deallocated.</para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>optics</parametername>
</parameternamelist>
<parameterdescription>
<para>An optics type structure that should be deallocated. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="1118" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" bodystart="1119" bodyend="1129"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Routines used to calculate the opacity of the ocean. </para>
    </briefdescription>
    <detaileddescription>
<para>opacity_from_chl: In this routine, the Morel (modified) or Manizza (modified) schemes use the &quot;blue&quot; band in the paramterizations to determine the e-folding depth of the incoming shortwave attenuation. The red portion is lumped into the net heating at the surface.</para>
<para>Morel, A., 1988: Optical modeling of the upper ocean in relation to its biogenous matter content (case-i waters)., J. Geo. Res., 93, 10,749-10,768.</para>
<para>Manizza, M., C. LeQuere, A. J. Watson, and E. T. Buitenhuis, 2005: Bio-optical feedbacks among phytoplankton, upper ocean physics and sea-ice in a global model, Geophys. Res. Let., 32, L05603, doi:10.1029/2004GL020778. </para>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_opacity.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
