<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.14">
  <compounddef id="namespacemom__tracer__diabatic" kind="namespace" language="Fortran">
    <compoundname>mom_tracer_diabatic</compoundname>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__tracer__diabatic_1ac5d57973547cc4ed3a89808d3910943e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_tracer_diabatic::tracer_vertdiff</definition>
        <argsstring>(h_old, ea, eb, dt, tr, G, GV, sfc_flux, btm_flux, btm_reservoir, sink_rate, convert_flux_in)</argsstring>
        <name>tracer_vertdiff</name>
        <param>
          <type>h_old</type>
          <defname>h_old</defname>
        </param>
        <param>
          <type>ea</type>
          <defname>ea</defname>
        </param>
        <param>
          <type>eb</type>
          <defname>eb</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>tr</type>
          <defname>tr</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>sfc_flux</type>
          <defname>sfc_flux</defname>
        </param>
        <param>
          <type>btm_flux</type>
          <defname>btm_flux</defname>
        </param>
        <param>
          <type>btm_reservoir</type>
          <defname>btm_reservoir</defname>
        </param>
        <param>
          <type>sink_rate</type>
          <defname>sink_rate</defname>
        </param>
        <param>
          <type>convert_flux_in</type>
          <defname>convert_flux_in</defname>
        </param>
        <briefdescription>
<para>This subroutine solves a tridiagonal equation for the final tracer concentrations after the dual-entrainments, and possibly sinking or surface and bottom sources, are applied. The sinking is implemented with an fully implicit upwind advection scheme. Alternate time units can be used for the timestep, surface and bottom fluxes and sink_rate provided they are all consistent. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean 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">h_old</parametername>
</parameternamelist>
<parameterdescription>
<para>layer thickness before entrainment [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ea</parametername>
</parameternamelist>
<parameterdescription>
<para>amount of fluid entrained from the layer above [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">eb</parametername>
</parameternamelist>
<parameterdescription>
<para>amount of fluid entrained from the layer below [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tr</parametername>
</parameternamelist>
<parameterdescription>
<para>tracer concentration in concentration units [CU]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>amount of time covered by this call [T ~&gt; s]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">sfc_flux</parametername>
</parameternamelist>
<parameterdescription>
<para>surface flux of the tracer in units of [CU kg m-2 T-1 ~&gt; CU kg m-2 s-1] or [CU H ~&gt; CU m or CU kg m-2] if convert_flux_in is .false.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">btm_flux</parametername>
</parameternamelist>
<parameterdescription>
<para>The (negative upward) bottom flux of the tracer in [CU kg m-2 T-1 ~&gt; CU kg m-2 s-1] or [CU H ~&gt; CU m or CU kg m-2] if</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">btm_reservoir</parametername>
</parameternamelist>
<parameterdescription>
<para>amount of tracer in a bottom reservoir [CU kg m-2]; formerly [CU m]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">sink_rate</parametername>
</parameternamelist>
<parameterdescription>
<para>rate at which the tracer sinks [m T-1 ~&gt; m s-1]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">convert_flux_in</parametername>
</parameternamelist>
<parameterdescription>
<para>True if the specified sfc_flux needs to be integrated in time </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_diabatic.F90" line="25" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_diabatic.F90" bodystart="27" bodyend="222"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <referencedby refid="namespaceadvection__test__tracer_1a475d1016ef9ccf0151bc3b40ccd89931" compoundref="advection__test__tracer_8F90" startline="260" endline="313">advection_test_tracer::advection_test_tracer_column_physics</referencedby>
        <referencedby refid="namespaceboundary__impulse__tracer_1ae5c5e088ee2daf72dfec738fb0d6e1a6" compoundref="boundary__impulse__tracer_8F90" startline="209" endline="282">boundary_impulse_tracer::boundary_impulse_tracer_column_physics</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="namespacedome__tracer_1afcf9c716f103f76a5013ebdf53571920" compoundref="DOME__tracer_8F90" startline="287" endline="335">dome_tracer::dome_tracer_column_physics</referencedby>
        <referencedby refid="namespaceregional__dyes_1ae9a84fcf1505f825e711c1fc9bc86c70" compoundref="dye__example_8F90" startline="248" endline="322">regional_dyes::dye_tracer_column_physics</referencedby>
        <referencedby refid="namespacedyed__obc__tracer_1a7c9e4c1789bdcebd4f0fa1380eb6df3e" compoundref="dyed__obc__tracer_8F90" startline="205" endline="254">dyed_obc_tracer::dyed_obc_tracer_column_physics</referencedby>
        <referencedby refid="namespaceideal__age__example_1a6c2fb023e159a153d56220585b57ceb5" compoundref="ideal__age__example_8F90" startline="286" endline="369">ideal_age_example::ideal_age_tracer_column_physics</referencedby>
        <referencedby refid="namespaceisomip__tracer_1a7f06ffe89c033074c6b9bd7f375f6dd5" compoundref="ISOMIP__tracer_8F90" startline="250" endline="322">isomip_tracer::isomip_tracer_column_physics</referencedby>
        <referencedby refid="namespacemom__diabatic__driver_1a71d8d849db16be4b87c2650b49f01c82" compoundref="MOM__diabatic__driver_8F90" startline="1855" endline="2812">mom_diabatic_driver::layered_diabatic</referencedby>
        <referencedby refid="namespacemom__ocmip2__cfc_1aebc84df12994a1f74d181ab54e380878" compoundref="MOM__OCMIP2__CFC_8F90" startline="411" endline="490">mom_ocmip2_cfc::ocmip2_cfc_column_physics</referencedby>
        <referencedby refid="namespaceoil__tracer_1a2e5cd83c5d5a92a7774d7e6bda53c646" compoundref="oil__tracer_8F90" startline="301" endline="402">oil_tracer::oil_tracer_column_physics</referencedby>
        <referencedby refid="namespacepseudo__salt__tracer_1a7c534dce5f33ab195485552f63cff657" compoundref="pseudo__salt__tracer_8F90" startline="176" endline="247">pseudo_salt_tracer::pseudo_salt_tracer_column_physics</referencedby>
        <referencedby refid="namespacergc__tracer_1ad4ef1aeae0c30402bc2e4d0a2ec248c2" compoundref="RGC__tracer_8F90" startline="277" endline="338">rgc_tracer::rgc_tracer_column_physics</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__tracer__diabatic_1ad4d3d4de0f2b84c15bccc5eb2f767df3" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_tracer_diabatic::applytracerboundaryfluxesinout</definition>
        <argsstring>(G, GV, Tr, dt, fluxes, h, evap_CFL_limit, minimum_forcing_depth, in_flux_optional, out_flux_optional, update_h_opt)</argsstring>
        <name>applytracerboundaryfluxesinout</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>Tr</type>
          <defname>Tr</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>evap_CFL_limit</type>
          <defname>evap_CFL_limit</defname>
        </param>
        <param>
          <type>minimum_forcing_depth</type>
          <defname>minimum_forcing_depth</defname>
        </param>
        <param>
          <type>in_flux_optional</type>
          <defname>in_flux_optional</defname>
        </param>
        <param>
          <type>out_flux_optional</type>
          <defname>out_flux_optional</defname>
        </param>
        <param>
          <type>update_h_opt</type>
          <defname>update_h_opt</defname>
        </param>
        <briefdescription>
<para>This routine is modeled after applyBoundaryFluxesInOut in <ref refid="MOM__diabatic__aux_8F90" kindref="compound">MOM_diabatic_aux.F90</ref> NOTE: Please note that in this routine sfc_flux gets set to zero to ensure that the surface flux of the tracer does not get applied again during a subsequent call to tracer_vertdif. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>Grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean vertical grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">tr</parametername>
</parameternamelist>
<parameterdescription>
<para>Tracer concentration on T-cell</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>Time-step over which forcing is applied [T ~&gt; s]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>Surface fluxes container</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thickness [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">evap_cfl_limit</parametername>
</parameternamelist>
<parameterdescription>
<para>Limit on the fraction of the water that can be fluxed out of the top layer in a timestep [nondim]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">minimum_forcing_depth</parametername>
</parameternamelist>
<parameterdescription>
<para>The smallest depth over which fluxes can be applied [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">in_flux_optional</parametername>
</parameternamelist>
<parameterdescription>
<para>The total time-integrated amount of tracer that enters with freshwater</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">out_flux_optional</parametername>
</parameternamelist>
<parameterdescription>
<para>The total time-integrated amount of tracer that leaves with freshwater</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">update_h_opt</parametername>
</parameternamelist>
<parameterdescription>
<para>Optional flag to determine whether h should be updated </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_diabatic.F90" line="228" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_diabatic.F90" bodystart="230" bodyend="443"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <referencedby refid="namespaceadvection__test__tracer_1a475d1016ef9ccf0151bc3b40ccd89931" compoundref="advection__test__tracer_8F90" startline="260" endline="313">advection_test_tracer::advection_test_tracer_column_physics</referencedby>
        <referencedby refid="namespaceboundary__impulse__tracer_1ae5c5e088ee2daf72dfec738fb0d6e1a6" compoundref="boundary__impulse__tracer_8F90" startline="209" endline="282">boundary_impulse_tracer::boundary_impulse_tracer_column_physics</referencedby>
        <referencedby refid="namespacedome__tracer_1afcf9c716f103f76a5013ebdf53571920" compoundref="DOME__tracer_8F90" startline="287" endline="335">dome_tracer::dome_tracer_column_physics</referencedby>
        <referencedby refid="namespaceregional__dyes_1ae9a84fcf1505f825e711c1fc9bc86c70" compoundref="dye__example_8F90" startline="248" endline="322">regional_dyes::dye_tracer_column_physics</referencedby>
        <referencedby refid="namespacedyed__obc__tracer_1a7c9e4c1789bdcebd4f0fa1380eb6df3e" compoundref="dyed__obc__tracer_8F90" startline="205" endline="254">dyed_obc_tracer::dyed_obc_tracer_column_physics</referencedby>
        <referencedby refid="namespaceideal__age__example_1a6c2fb023e159a153d56220585b57ceb5" compoundref="ideal__age__example_8F90" startline="286" endline="369">ideal_age_example::ideal_age_tracer_column_physics</referencedby>
        <referencedby refid="namespaceisomip__tracer_1a7f06ffe89c033074c6b9bd7f375f6dd5" compoundref="ISOMIP__tracer_8F90" startline="250" endline="322">isomip_tracer::isomip_tracer_column_physics</referencedby>
        <referencedby refid="namespacemom__generic__tracer_1aa0ea1e7080c580a5598b5bede9ebd017" compoundref="MOM__generic__tracer_8F90" startline="399" endline="562">mom_generic_tracer::mom_generic_tracer_column_physics</referencedby>
        <referencedby refid="namespacemom__ocmip2__cfc_1aebc84df12994a1f74d181ab54e380878" compoundref="MOM__OCMIP2__CFC_8F90" startline="411" endline="490">mom_ocmip2_cfc::ocmip2_cfc_column_physics</referencedby>
        <referencedby refid="namespacemom__offline__main_1a04d329761570d6d9fbc38589bea929cc" compoundref="MOM__offline__main_8F90" startline="760" endline="805">mom_offline_main::offline_fw_fluxes_into_ocean</referencedby>
        <referencedby refid="namespacemom__offline__main_1ad96c09ff7c8f34d9602fd111ec492cfe" compoundref="MOM__offline__main_8F90" startline="810" endline="840">mom_offline_main::offline_fw_fluxes_out_ocean</referencedby>
        <referencedby refid="namespaceoil__tracer_1a2e5cd83c5d5a92a7774d7e6bda53c646" compoundref="oil__tracer_8F90" startline="301" endline="402">oil_tracer::oil_tracer_column_physics</referencedby>
        <referencedby refid="namespacepseudo__salt__tracer_1a7c534dce5f33ab195485552f63cff657" compoundref="pseudo__salt__tracer_8F90" startline="176" endline="247">pseudo_salt_tracer::pseudo_salt_tracer_column_physics</referencedby>
        <referencedby refid="namespacergc__tracer_1ad4ef1aeae0c30402bc2e4d0a2ec248c2" compoundref="RGC__tracer_8F90" startline="277" endline="338">rgc_tracer::rgc_tracer_column_physics</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>This module contains routines that implement physical fluxes of tracers (e.g. due to surface fluxes or mixing). These are intended to be called from call_tracer_column_fns in the <ref refid="namespaceMOM__tracer__flow__control" kindref="compound">MOM_tracer_flow_control</ref> module. </para>    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_tracer_diabatic.F90" line="4" column="1"/>
  </compounddef>
</doxygen>
