<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.20" xml:lang="en-US">
  <compounddef id="namespacemom__diapyc__energy__req" kind="namespace" language="Fortran">
    <compoundname>mom_diapyc_energy_req</compoundname>
    <innerclass refid="structmom__diapyc__energy__req_1_1diapyc__energy__req__cs" prot="public">mom_diapyc_energy_req::diapyc_energy_req_cs</innerclass>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__diapyc__energy__req_1a0bf0dd1f3ae4f7f66fb000322f18064e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diapyc_energy_req::diapyc_energy_req_test</definition>
        <argsstring>(h_3d, dt, tv, G, GV, US, CS, Kd_int)</argsstring>
        <name>diapyc_energy_req_test</name>
        <param>
          <type>h_3d</type>
          <defname>h_3d</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>Kd_int</type>
          <defname>Kd_int</defname>
        </param>
        <briefdescription>
<para>This subroutine helps test the accuracy of the diapycnal mixing energy requirement code by writing diagnostics, possibly using an intensely mixing test profile of diffusivity. </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_3d</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thickness before entrainment [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing pointers to any available thermodynamic fields. Absent fields have NULL ptrs. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of time covered by this call [T ~&gt; s]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>This module&apos;s control structure. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">kd_int</parametername>
</parameternamelist>
<parameterdescription>
<para>Interface diffusivities [Z2 T-1 ~&gt; m2 s-1]. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diapyc_energy_req.F90" line="49" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diapyc_energy_req.F90" bodystart="50" bodyend="111"/>
        <references refid="namespacemom__diapyc__energy__req_1aca27fbd2a716b8565b0b754a417479d5" compoundref="MOM__diapyc__energy__req_8F90" startline="122" endline="961">diapyc_energy_req_calc</references>
        <references refid="namespacemom__error__handler_1ad5f00a53059c72fe2332d1436c80ca71" compoundref="MOM__error__handler_8F90" startline="44" endline="48">mom_error_handler::is_root_pe</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <referencedby refid="namespacemom__diabatic__driver_1ada12cae1e63c6aa56775f1a235b7db95" compoundref="MOM__diabatic__driver_8F90" startline="263" endline="445">mom_diabatic_driver::diabatic</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diapyc__energy__req_1aca27fbd2a716b8565b0b754a417479d5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diapyc_energy_req::diapyc_energy_req_calc</definition>
        <argsstring>(h_in, T_in, S_in, Kd, energy_Kd, dt, tv, G, GV, US, may_print, CS)</argsstring>
        <name>diapyc_energy_req_calc</name>
        <param>
          <type>h_in</type>
          <defname>h_in</defname>
        </param>
        <param>
          <type>T_in</type>
          <defname>T_in</defname>
        </param>
        <param>
          <type>S_in</type>
          <defname>S_in</defname>
        </param>
        <param>
          <type>Kd</type>
          <defname>Kd</defname>
        </param>
        <param>
          <type>energy_Kd</type>
          <defname>energy_Kd</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>may_print</type>
          <defname>may_print</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>This subroutine uses a substantially refactored tridiagonal equation for diapycnal mixing of temperature and salinity to estimate the potential energy change due to diapycnal mixing in a column of water. It does this estimate 4 different ways, all of which should be equivalent, but reports only one. The various estimates are taken because they will later be used as templates for other bits of code. </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_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thickness before entrainment, [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">t_in</parametername>
</parameternamelist>
<parameterdescription>
<para>The layer temperatures [degC]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">s_in</parametername>
</parameternamelist>
<parameterdescription>
<para>The layer salinities [ppt]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">kd</parametername>
</parameternamelist>
<parameterdescription>
<para>The interfaces diapycnal diffusivities [Z2 T-1 ~&gt; m2 s-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of time covered by this call [T ~&gt; s]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">energy_kd</parametername>
</parameternamelist>
<parameterdescription>
<para>The column-integrated rate of energy consumption by diapycnal diffusion [R Z L2 T-3 ~&gt; W m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing pointers to any available thermodynamic fields. Absent fields have NULL ptrs. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">may_print</parametername>
</parameternamelist>
<parameterdescription>
<para>If present and true, write out diagnostics of energy use. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>This module&apos;s control structure. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diapyc_energy_req.F90" line="120" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diapyc_energy_req.F90" bodystart="122" bodyend="961"/>
        <references refid="namespacemom__diapyc__energy__req_1a2bed511a4b1df9de0e2230c24389bc82" compoundref="MOM__diapyc__energy__req_8F90" startline="970" endline="1108">find_pe_chg</references>
        <references refid="namespacemom__diapyc__energy__req_1afb1736a09e8f04ae84f561924e157691" compoundref="MOM__diapyc__energy__req_8F90" startline="1120" endline="1265">find_pe_chg_orig</references>
        <referencedby refid="namespacemom__diapyc__energy__req_1a0bf0dd1f3ae4f7f66fb000322f18064e" compoundref="MOM__diapyc__energy__req_8F90" startline="50" endline="111">diapyc_energy_req_test</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diapyc__energy__req_1a2bed511a4b1df9de0e2230c24389bc82" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_diapyc_energy_req::find_pe_chg</definition>
        <argsstring>(Kddt_h0, dKddt_h, hp_a, hp_b, Th_a, Sh_a, Th_b, Sh_b, dT_to_dPE_a, dS_to_dPE_a, dT_to_dPE_b, dS_to_dPE_b, pres_Z, dT_to_dColHt_a, dS_to_dColHt_a, dT_to_dColHt_b, dS_to_dColHt_b, PE_chg, dPEc_dKd, dPE_max, dPEc_dKd_0, ColHt_cor)</argsstring>
        <name>find_pe_chg</name>
        <param>
          <type>Kddt_h0</type>
          <defname>Kddt_h0</defname>
        </param>
        <param>
          <type>dKddt_h</type>
          <defname>dKddt_h</defname>
        </param>
        <param>
          <type>hp_a</type>
          <defname>hp_a</defname>
        </param>
        <param>
          <type>hp_b</type>
          <defname>hp_b</defname>
        </param>
        <param>
          <type>Th_a</type>
          <defname>Th_a</defname>
        </param>
        <param>
          <type>Sh_a</type>
          <defname>Sh_a</defname>
        </param>
        <param>
          <type>Th_b</type>
          <defname>Th_b</defname>
        </param>
        <param>
          <type>Sh_b</type>
          <defname>Sh_b</defname>
        </param>
        <param>
          <type>dT_to_dPE_a</type>
          <defname>dT_to_dPE_a</defname>
        </param>
        <param>
          <type>dS_to_dPE_a</type>
          <defname>dS_to_dPE_a</defname>
        </param>
        <param>
          <type>dT_to_dPE_b</type>
          <defname>dT_to_dPE_b</defname>
        </param>
        <param>
          <type>dS_to_dPE_b</type>
          <defname>dS_to_dPE_b</defname>
        </param>
        <param>
          <type>pres_Z</type>
          <defname>pres_Z</defname>
        </param>
        <param>
          <type>dT_to_dColHt_a</type>
          <defname>dT_to_dColHt_a</defname>
        </param>
        <param>
          <type>dS_to_dColHt_a</type>
          <defname>dS_to_dColHt_a</defname>
        </param>
        <param>
          <type>dT_to_dColHt_b</type>
          <defname>dT_to_dColHt_b</defname>
        </param>
        <param>
          <type>dS_to_dColHt_b</type>
          <defname>dS_to_dColHt_b</defname>
        </param>
        <param>
          <type>PE_chg</type>
          <defname>PE_chg</defname>
        </param>
        <param>
          <type>dPEc_dKd</type>
          <defname>dPEc_dKd</defname>
        </param>
        <param>
          <type>dPE_max</type>
          <defname>dPE_max</defname>
        </param>
        <param>
          <type>dPEc_dKd_0</type>
          <defname>dPEc_dKd_0</defname>
        </param>
        <param>
          <type>ColHt_cor</type>
          <defname>ColHt_cor</defname>
        </param>
        <briefdescription>
<para>This subroutine calculates the change in potential energy and or derivatives for several changes in an interfaces&apos;s diapycnal diffusivity times a timestep. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">kddt_h0</parametername>
</parameternamelist>
<parameterdescription>
<para>The previously used diffusivity at an interface times the time step and divided by the average of the thicknesses around the interface [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dkddt_h</parametername>
</parameternamelist>
<parameterdescription>
<para>The trial change in the diffusivity at an interface times the time step and divided by the average of the thicknesses around the interface [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">hp_a</parametername>
</parameternamelist>
<parameterdescription>
<para>The effective pivot thickness of the layer above the interface, given by h_k plus a term that is a fraction (determined from the tridiagonal solver) of Kddt_h for the interface above [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">hp_b</parametername>
</parameternamelist>
<parameterdescription>
<para>The effective pivot thickness of the layer below the interface, given by h_k plus a term that is a fraction (determined from the tridiagonal solver) of Kddt_h for the interface above [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">th_a</parametername>
</parameternamelist>
<parameterdescription>
<para>An effective temperature times a thickness in the layer above, including implicit mixing effects with other yet higher layers [degC H ~&gt; degC m or degC kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">sh_a</parametername>
</parameternamelist>
<parameterdescription>
<para>An effective salinity times a thickness in the layer above, including implicit mixing effects with other yet higher layers [ppt H ~&gt; ppt m or ppt kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">th_b</parametername>
</parameternamelist>
<parameterdescription>
<para>An effective temperature times a thickness in the layer below, including implicit mixing effects with other yet lower layers [degC H ~&gt; degC m or degC kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">sh_b</parametername>
</parameternamelist>
<parameterdescription>
<para>An effective salinity times a thickness in the layer below, including implicit mixing effects with other yet lower layers [ppt H ~&gt; ppt m or ppt kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt_to_dpe_a</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (pres_lay*mass_lay*dSpec_vol/dT) relating a layer&apos;s temperature change to the change in column potential energy, including all implicit diffusive changes in the temperatures of all the layers above [R Z L2 T-2 degC-1 ~&gt; J m-2 degC-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ds_to_dpe_a</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (pres_lay*mass_lay*dSpec_vol/dS) relating a layer&apos;s salinity change to the change in column potential energy, including all implicit diffusive changes in the salinities of all the layers above [R Z L2 T-2 ppt-1 ~&gt; J m-2 ppt-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt_to_dpe_b</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (pres_lay*mass_lay*dSpec_vol/dT) relating a layer&apos;s temperature change to the change in column potential energy, including all implicit diffusive changes in the temperatures of all the layers below [R Z L2 T-2 degC-1 ~&gt; J m-2 degC-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ds_to_dpe_b</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (pres_lay*mass_lay*dSpec_vol/dS) relating a layer&apos;s salinity change to the change in column potential energy, including all implicit diffusive changes in the salinities of all the layers below [R Z L2 T-2 ppt-1 ~&gt; J m-2 ppt-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pres_z</parametername>
</parameternamelist>
<parameterdescription>
<para>The hydrostatic interface pressure, which is used to relate the changes in column thickness to the energy that is radiated as gravity waves and unavailable to drive mixing [R L2 T-2 m Z-1 ~&gt; J m-3]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt_to_dcolht_a</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (mass_lay*dSColHtc_vol/dT) relating a layer&apos;s temperature change to the change in column height, including all implicit diffusive changes in the temperatures of all the layers above [Z degC-1 ~&gt; m degC-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ds_to_dcolht_a</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (mass_lay*dSColHtc_vol/dS) relating a layer&apos;s salinity change to the change in column height, including all implicit diffusive changes in the salinities of all the layers above [Z ppt-1 ~&gt; m ppt-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt_to_dcolht_b</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (mass_lay*dSColHtc_vol/dT) relating a layer&apos;s temperature change to the change in column height, including all implicit diffusive changes in the temperatures of all the layers below [Z degC-1 ~&gt; m degC-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ds_to_dcolht_b</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (mass_lay*dSColHtc_vol/dS) relating a layer&apos;s salinity change to the change in column height, including all implicit diffusive changes in the salinities of all the layers below [Z ppt-1 ~&gt; m ppt-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">pe_chg</parametername>
</parameternamelist>
<parameterdescription>
<para>The change in column potential energy from applying Kddt_h at the present interface [R Z L2 T-2 ~&gt; J m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">dpec_dkd</parametername>
</parameternamelist>
<parameterdescription>
<para>The partial derivative of PE_chg with Kddt_h, [R Z L2 T-2 H-1 ~&gt; J m-3 or J kg-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">dpe_max</parametername>
</parameternamelist>
<parameterdescription>
<para>The maximum change in column potential energy that could be realizedd by applying a huge value of Kddt_h at the present interface [R Z L2 T-2 ~&gt; J m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">dpec_dkd_0</parametername>
</parameternamelist>
<parameterdescription>
<para>The partial derivative of PE_chg with Kddt_h in the limit where Kddt_h = 0 [R Z L2 T-2 H-1 ~&gt; J m-3 or J kg-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">colht_cor</parametername>
</parameternamelist>
<parameterdescription>
<para>The correction to PE_chg that is made due to a net change in the column height [R Z L2 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_diapyc_energy_req.F90" line="966" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diapyc_energy_req.F90" bodystart="970" bodyend="1108"/>
        <referencedby refid="namespacemom__diapyc__energy__req_1aca27fbd2a716b8565b0b754a417479d5" compoundref="MOM__diapyc__energy__req_8F90" startline="122" endline="961">diapyc_energy_req_calc</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diapyc__energy__req_1afb1736a09e8f04ae84f561924e157691" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_diapyc_energy_req::find_pe_chg_orig</definition>
        <argsstring>(Kddt_h, h_k, b_den_1, dTe_term, dSe_term, dT_km1_t2, dS_km1_t2, dT_to_dPE_k, dS_to_dPE_k, dT_to_dPEa, dS_to_dPEa, pres_Z, dT_to_dColHt_k, dS_to_dColHt_k, dT_to_dColHta, dS_to_dColHta, PE_chg, dPEc_dKd, dPE_max, dPEc_dKd_0)</argsstring>
        <name>find_pe_chg_orig</name>
        <param>
          <type>Kddt_h</type>
          <defname>Kddt_h</defname>
        </param>
        <param>
          <type>h_k</type>
          <defname>h_k</defname>
        </param>
        <param>
          <type>b_den_1</type>
          <defname>b_den_1</defname>
        </param>
        <param>
          <type>dTe_term</type>
          <defname>dTe_term</defname>
        </param>
        <param>
          <type>dSe_term</type>
          <defname>dSe_term</defname>
        </param>
        <param>
          <type>dT_km1_t2</type>
          <defname>dT_km1_t2</defname>
        </param>
        <param>
          <type>dS_km1_t2</type>
          <defname>dS_km1_t2</defname>
        </param>
        <param>
          <type>dT_to_dPE_k</type>
          <defname>dT_to_dPE_k</defname>
        </param>
        <param>
          <type>dS_to_dPE_k</type>
          <defname>dS_to_dPE_k</defname>
        </param>
        <param>
          <type>dT_to_dPEa</type>
          <defname>dT_to_dPEa</defname>
        </param>
        <param>
          <type>dS_to_dPEa</type>
          <defname>dS_to_dPEa</defname>
        </param>
        <param>
          <type>pres_Z</type>
          <defname>pres_Z</defname>
        </param>
        <param>
          <type>dT_to_dColHt_k</type>
          <defname>dT_to_dColHt_k</defname>
        </param>
        <param>
          <type>dS_to_dColHt_k</type>
          <defname>dS_to_dColHt_k</defname>
        </param>
        <param>
          <type>dT_to_dColHta</type>
          <defname>dT_to_dColHta</defname>
        </param>
        <param>
          <type>dS_to_dColHta</type>
          <defname>dS_to_dColHta</defname>
        </param>
        <param>
          <type>PE_chg</type>
          <defname>PE_chg</defname>
        </param>
        <param>
          <type>dPEc_dKd</type>
          <defname>dPEc_dKd</defname>
        </param>
        <param>
          <type>dPE_max</type>
          <defname>dPE_max</defname>
        </param>
        <param>
          <type>dPEc_dKd_0</type>
          <defname>dPEc_dKd_0</defname>
        </param>
        <briefdescription>
<para>This subroutine calculates the change in potential energy and or derivatives for several changes in an interfaces&apos;s diapycnal diffusivity times a timestep using the original form used in the first version of ePBL. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">kddt_h</parametername>
</parameternamelist>
<parameterdescription>
<para>The diffusivity at an interface times the time step and divided by the average of the thicknesses around the interface [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_k</parametername>
</parameternamelist>
<parameterdescription>
<para>The thickness of the layer below the interface [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">b_den_1</parametername>
</parameternamelist>
<parameterdescription>
<para>The first term in the denominator of the pivot for the tridiagonal solver, given by h_k plus a term that is a fraction (determined from the tridiagonal solver) of Kddt_h for the interface above [H ~&gt; m or kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dte_term</parametername>
</parameternamelist>
<parameterdescription>
<para>A diffusivity-independent term related to the temperature change in the layer below the interface [degC H ~&gt; degC m or degC kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dse_term</parametername>
</parameternamelist>
<parameterdescription>
<para>A diffusivity-independent term related to the salinity change in the layer below the interface [ppt H ~&gt; ppt m or ppt kg m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt_km1_t2</parametername>
</parameternamelist>
<parameterdescription>
<para>A diffusivity-independent term related to the temperature change in the layer above the interface [degC]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ds_km1_t2</parametername>
</parameternamelist>
<parameterdescription>
<para>A diffusivity-independent term related to the salinity change in the layer above the interface [ppt]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pres_z</parametername>
</parameternamelist>
<parameterdescription>
<para>The hydrostatic interface pressure, which is used to relate the changes in column thickness to the energy that is radiated as gravity waves and unavailable to drive mixing [R L2 T-2 ~&gt; J m-3]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt_to_dpe_k</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (pres_lay*mass_lay*dSpec_vol/dT) relating a layer&apos;s temperature change to the change in column potential energy, including all implicit diffusive changes in the temperatures of all the layers below [R Z L2 T-2 degC-1 ~&gt; J m-2 degC-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ds_to_dpe_k</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (pres_lay*mass_lay*dSpec_vol/dS) relating a layer&apos;s salinity change to the change in column potential energy, including all implicit diffusive changes in the salinities of all the layers below [R Z L2 T-2 ppt-1 ~&gt; J m-2 ppt-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt_to_dpea</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (pres_lay*mass_lay*dSpec_vol/dT) relating a layer&apos;s temperature change to the change in column potential energy, including all implicit diffusive changes in the temperatures of all the layers above [R Z L2 T-2 degC-1 ~&gt; J m-2 degC-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ds_to_dpea</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (pres_lay*mass_lay*dSpec_vol/dS) relating a layer&apos;s salinity change to the change in column potential energy, including all implicit diffusive changes in the salinities of all the layers above [R Z L2 T-2 ppt-1 ~&gt; J m-2 ppt-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt_to_dcolht_k</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (mass_lay*dSColHtc_vol/dT) relating a layer&apos;s temperature change to the change in column height, including all implicit diffusive changes in the temperatures of all the layers below [Z degC-1 ~&gt; m degC-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ds_to_dcolht_k</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (mass_lay*dSColHtc_vol/dS) relating a layer&apos;s salinity change to the change in column height, including all implicit diffusive changes in the salinities of all the layers below [Z ppt-1 ~&gt; m ppt-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt_to_dcolhta</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (mass_lay*dSColHtc_vol/dT) relating a layer&apos;s temperature change to the change in column height, including all implicit diffusive changes in the temperatures of all the layers above [Z degC-1 ~&gt; m degC-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ds_to_dcolhta</parametername>
</parameternamelist>
<parameterdescription>
<para>A factor (mass_lay*dSColHtc_vol/dS) relating a layer&apos;s salinity change to the change in column height, including all implicit diffusive changes in the salinities of all the layers above [Z ppt-1 ~&gt; m ppt-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">pe_chg</parametername>
</parameternamelist>
<parameterdescription>
<para>The change in column potential energy from applying Kddt_h at the present interface [R Z L2 T-2 ~&gt; J m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">dpec_dkd</parametername>
</parameternamelist>
<parameterdescription>
<para>The partial derivative of PE_chg with Kddt_h, [R Z L2 T-2 H-1 ~&gt; J m-3 or J kg-1]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">dpe_max</parametername>
</parameternamelist>
<parameterdescription>
<para>The maximum change in column potential energy that could be realized by applying a huge value of Kddt_h at the present interface [R Z L2 T-2 ~&gt; J m-2]. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">dpec_dkd_0</parametername>
</parameternamelist>
<parameterdescription>
<para>The partial derivative of PE_chg with Kddt_h in the limit where Kddt_h = 0 [R Z L2 T-2 H-1 ~&gt; J m-3 or J kg-1]. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diapyc_energy_req.F90" line="1115" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diapyc_energy_req.F90" bodystart="1120" bodyend="1265"/>
        <referencedby refid="namespacemom__diapyc__energy__req_1aca27fbd2a716b8565b0b754a417479d5" compoundref="MOM__diapyc__energy__req_8F90" startline="122" endline="961">diapyc_energy_req_calc</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diapyc__energy__req_1a63b127bfd78461d8df3449591792b224" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diapyc_energy_req::diapyc_energy_req_init</definition>
        <argsstring>(Time, G, GV, US, param_file, diag, CS)</argsstring>
        <name>diapyc_energy_req_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>
        <briefdescription>
<para>Initialize parameters and allocate memory associated with the diapycnal energy requirement module. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">time</parametername>
</parameternamelist>
<parameterdescription>
<para>model time </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>model grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean vertical grid structure </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>file to parse for parameter values </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">diag</parametername>
</parameternamelist>
<parameterdescription>
<para>structure to regulate diagnostic output </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>module control structure </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diapyc_energy_req.F90" line="1269" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diapyc_energy_req.F90" bodystart="1270" bodyend="1347"/>
        <references refid="namespacemom__diag__mediator_1ada491446bf7216fe101e6b0f6ed551e1" compoundref="MOM__diag__mediator_8F90" startline="1944" endline="2177">mom_diag_mediator::register_diag_field</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diapyc__energy__req_1aa4cb9f1b90a245e34ddd4182943a21c6" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diapyc_energy_req::diapyc_energy_req_end</definition>
        <argsstring>(CS)</argsstring>
        <name>diapyc_energy_req_end</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Clean up and deallocate memory associated with the diapycnal energy requirement module. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Diapycnal energy requirement control structure that will be deallocated in this subroutine. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diapyc_energy_req.F90" line="1351" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diapyc_energy_req.F90" bodystart="1352" bodyend="1354"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Calculates the energy requirements of mixing. </para>
    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/parameterizations/vertical/MOM_diapyc_energy_req.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
