<?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.13">
  <compounddef id="namespacemom__generic__tracer" kind="namespace" language="Fortran">
    <compoundname>mom_generic_tracer</compoundname>
    <innerclass refid="structmom__generic__tracer_1_1mom__generic__tracer__cs" prot="public">mom_generic_tracer::mom_generic_tracer_cs</innerclass>
      <sectiondef kind="var">
      <memberdef kind="variable" id="namespacemom__generic__tracer_1adc781c54c3513e29b19d79bd8ef4cba4" prot="private" static="no" mutable="no">
        <type>logical</type>
        <definition>logical mom_generic_tracer::g_registered</definition>
        <argsstring></argsstring>
        <name>g_registered</name>
        <initializer>= .false.</initializer>
        <briefdescription>
<para>An state hidden in module data that is very much not allowed in MOM6. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" line="58" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" bodystart="58" bodyend="58"/>
        <referencedby refid="namespacemom__generic__tracer_1ac7ac1e5cc988131c4bcb1ea11e901a29" compoundref="MOM__generic__tracer_8F90" startline="763" endline="793">mom_generic_flux_init</referencedby>
        <referencedby refid="namespacemom__generic__tracer_1a5714b64160c8c96b30f1b641de5ff764" compoundref="MOM__generic__tracer_8F90" startline="98" endline="218">register_mom_generic_tracer</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__generic__tracer_1a5714b64160c8c96b30f1b641de5ff764" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>logical function, public</type>
        <definition>logical function, public mom_generic_tracer::register_mom_generic_tracer</definition>
        <argsstring>(HI, GV, param_file, CS, tr_Reg, restart_CS)</argsstring>
        <name>register_mom_generic_tracer</name>
        <param>
          <type>HI</type>
          <defname>HI</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>tr_Reg</type>
          <defname>tr_Reg</defname>
        </param>
        <param>
          <type>restart_CS</type>
          <defname>restart_CS</defname>
        </param>
        <briefdescription>
<para>Initializes the generic tracer packages and adds their tracers to the list Adds the tracers in the list of generic tracers to the set of MOM tracers (i.e., MOM-register them) Register these tracers for restart. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hi</parametername>
</parameternamelist>
<parameterdescription>
<para>Horizontal index ranges</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure to parse for run-time parameters</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the control structure for this module</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>tr_reg</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the control structure for the tracer advection and diffusion module.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>restart_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the restart control structure. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" line="97" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" bodystart="98" bodyend="218"/>
        <references refid="namespacemom__generic__tracer_1adc781c54c3513e29b19d79bd8ef4cba4" compoundref="MOM__generic__tracer_8F90" startline="58" endline="58">g_registered</references>
        <references refid="namespaceg__tracer__utils_1a8efa9a9fd92ac46615984df279ece6e6" compoundref="generic__tracer__utils_8F90" startline="273" endline="274">g_tracer_utils::g_tracer_get_alias</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__tracer__registry_1a97a70989bd0318f51d90c2fc6f87c6f5" compoundref="MOM__tracer__registry_8F90" startline="158" endline="325">mom_tracer_registry::register_tracer</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__generic__tracer_1a5a103d836debaf2815b39a3ccb8ae850" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_generic_tracer::initialize_mom_generic_tracer</definition>
        <argsstring>(restart, day, G, GV, US, h, param_file, diag, OBC, CS, sponge_CSp, ALE_sponge_CSp)</argsstring>
        <name>initialize_mom_generic_tracer</name>
        <param>
          <type>restart</type>
          <defname>restart</defname>
        </param>
        <param>
          <type>day</type>
          <defname>day</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>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>diag</type>
          <defname>diag</defname>
        </param>
        <param>
          <type>OBC</type>
          <defname>OBC</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>sponge_CSp</type>
          <defname>sponge_CSp</defname>
        </param>
        <param>
          <type>ALE_sponge_CSp</type>
          <defname>ALE_sponge_CSp</defname>
        </param>
        <briefdescription>
<para>Initialize phase II: Initialize required variables for generic tracers There are some steps of initialization that cannot be done in register_MOM_generic_tracer This is the place and time to do them: Set the grid mask and initial time for all generic tracers. Diag_register them. Z_diag_register them. </para>        </briefdescription>
        <detaileddescription>
<para>This subroutine initializes the NTR tracer fields in tr(:,:,:,:) and it sets up the tracer output.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">restart</parametername>
</parameternamelist>
<parameterdescription>
<para>.true. if the fields have already been read from a restart file.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">day</parametername>
</parameternamelist>
<parameterdescription>
<para>Time of the start of the run.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thicknesses [H ~&gt; m or kg m-2]</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="in">diag</parametername>
</parameternamelist>
<parameterdescription>
<para>Regulates diagnostic output.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>obc</parametername>
</parameternamelist>
<parameterdescription>
<para>This open boundary condition type specifies whether, where, and what open boundary conditions are used.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the control structure for this module.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sponge_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the control structure for the sponges.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>ale_sponge_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the control structure for the ALE sponges. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" line="230" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" bodystart="232" bodyend="384"/>
        <references refid="namespaceg__tracer__utils_1a8efa9a9fd92ac46615984df279ece6e6" compoundref="generic__tracer__utils_8F90" startline="273" endline="274">g_tracer_utils::g_tracer_get_alias</references>
        <references refid="namespaceg__tracer__utils_1ad6a15472b5429a6ee789dd2bc08741ec" compoundref="generic__tracer__utils_8F90" startline="104" endline="104">g_tracer_utils::g_tracer_set_csdiag</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__tracer__initialization__from__z_1ad1570db6534aa3b22bdc5dffef561458" compoundref="MOM__tracer__initialization__from__Z_8F90" startline="49" endline="203">mom_tracer_initialization_from_z::mom_initialize_tracer_from_z</references>
        <references refid="namespacemom__tracer__z__init_1aef33387149983391f1ea92bad7344360" compoundref="MOM__tracer__Z__init_8F90" startline="31" endline="275">mom_tracer_z_init::tracer_z_init</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__generic__tracer_1aa0ea1e7080c580a5598b5bede9ebd017" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_generic_tracer::mom_generic_tracer_column_physics</definition>
        <argsstring>(h_old, h_new, ea, eb, fluxes, Hml, dt, G, GV, CS, tv, optics, evap_CFL_limit, minimum_forcing_depth)</argsstring>
        <name>mom_generic_tracer_column_physics</name>
        <param>
          <type>h_old</type>
          <defname>h_old</defname>
        </param>
        <param>
          <type>h_new</type>
          <defname>h_new</defname>
        </param>
        <param>
          <type>ea</type>
          <defname>ea</defname>
        </param>
        <param>
          <type>eb</type>
          <defname>eb</defname>
        </param>
        <param>
          <type>fluxes</type>
          <defname>fluxes</defname>
        </param>
        <param>
          <type>Hml</type>
          <defname>Hml</defname>
        </param>
        <param>
          <type>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>optics</type>
          <defname>optics</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>
        <briefdescription>
<para>Column physics for generic tracers. Get the coupler values for generic tracers that exchange with atmosphere Update generic tracer concentration fields from sources and sinks. Vertically diffuse generic tracer concentration fields. Update generic tracers from bottom and their bottom reservoir. </para>        </briefdescription>
        <detaileddescription>
<para>This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. CFCs are relatively simple, as they are passive tracers. with only a surface flux as a source.</para><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">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">h_new</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thickness after entrainment [H ~&gt; m or kg m-2].</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ea</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of fluid entrained from the layer</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">eb</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of fluid entrained from the layer</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing pointers to thermodynamic and tracer forcing fields.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">hml</parametername>
</parameternamelist>
<parameterdescription>
<para>Mixed layer depth [Z ~&gt; m]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dt</parametername>
</parameternamelist>
<parameterdescription>
<para>The amount of time covered by this call [s]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the control structure for this module.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure pointing to various thermodynamic variables</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">optics</parametername>
</parameternamelist>
<parameterdescription>
<para>The structure containing optical properties.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">evap_cfl_limit</parametername>
</parameternamelist>
<parameterdescription>
<para>Limits how much water can be fluxed out of the top layer Stored previously in diabatic CS.</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>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" line="397" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" bodystart="399" bodyend="562"/>
        <references refid="namespacemom__tracer__diabatic_1ad4d3d4de0f2b84c15bccc5eb2f767df3" compoundref="MOM__tracer__diabatic_8F90" startline="230" endline="443">mom_tracer_diabatic::applytracerboundaryfluxesinout</references>
        <references refid="namespaceg__tracer__utils_1a8efa9a9fd92ac46615984df279ece6e6" compoundref="generic__tracer__utils_8F90" startline="273" endline="274">g_tracer_utils::g_tracer_get_alias</references>
        <references refid="namespaceg__tracer__utils_1ad6a15472b5429a6ee789dd2bc08741ec" compoundref="generic__tracer__utils_8F90" startline="104" endline="104">g_tracer_utils::g_tracer_set_csdiag</references>
        <references refid="namespacemom__diag__mediator_1a76e845bc64dfd5116f41fe90922b7937" compoundref="MOM__diag__mediator_8F90" startline="1929" endline="1934">mom_diag_mediator::get_diag_time_end</references>
        <references refid="namespacemom__spatial__means_1a87cad4a44f65c4849de870d15cc3f2a6" compoundref="MOM__spatial__means_8F90" startline="29" endline="47">mom_spatial_means::global_area_mean</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__generic__tracer_1a873bcaf0549f1840a111f031e549c5cd" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>integer function, public</type>
        <definition>integer function, public mom_generic_tracer::mom_generic_tracer_stock</definition>
        <argsstring>(h, stocks, G, GV, CS, names, units, stock_index)</argsstring>
        <name>mom_generic_tracer_stock</name>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>stocks</type>
          <defname>stocks</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>names</type>
          <defname>names</defname>
        </param>
        <param>
          <type>units</type>
          <defname>units</defname>
        </param>
        <param>
          <type>stock_index</type>
          <defname>stock_index</defname>
        </param>
        <briefdescription>
<para>This subroutine calculates mass-weighted integral on the PE either of all available tracer concentrations, or of a tracer that is being requested specifically, returning the number of stocks it has calculated. If the stock_index is present, only the stock corresponding to that coded index is returned. </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">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thicknesses [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">stocks</parametername>
</parameternamelist>
<parameterdescription>
<para>The mass-weighted integrated amount of each tracer, in kg times concentration units [kg conc].</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the control structure for this module.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">names</parametername>
</parameternamelist>
<parameterdescription>
<para>The names of the stocks calculated.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">units</parametername>
</parameternamelist>
<parameterdescription>
<para>The units of the stocks calculated.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">stock_index</parametername>
</parameternamelist>
<parameterdescription>
<para>The coded index of a specific stock being sought.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Return value, the number of stocks calculated here. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" line="570" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" bodystart="571" bodyend="628"/>
        <references refid="namespaceg__tracer__utils_1a8efa9a9fd92ac46615984df279ece6e6" compoundref="generic__tracer__utils_8F90" startline="273" endline="274">g_tracer_utils::g_tracer_get_alias</references>
        <referencedby refid="namespacemom__tracer__flow__control_1afd8526344e928c8c9505c921bf37447f" compoundref="MOM__tracer__flow__control_8F90" startline="545" endline="661">mom_tracer_flow_control::call_tracer_stocks</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__generic__tracer_1af5c635964fd7dfa7aea41fd17b3b3824" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>integer function, public</type>
        <definition>integer function, public mom_generic_tracer::mom_generic_tracer_min_max</definition>
        <argsstring>(ind_start, got_minmax, gmin, gmax, xgmin, ygmin, zgmin, xgmax, ygmax, zgmax, G, CS, names, units)</argsstring>
        <name>mom_generic_tracer_min_max</name>
        <param>
          <type>ind_start</type>
          <defname>ind_start</defname>
        </param>
        <param>
          <type>got_minmax</type>
          <defname>got_minmax</defname>
        </param>
        <param>
          <type>gmin</type>
          <defname>gmin</defname>
        </param>
        <param>
          <type>gmax</type>
          <defname>gmax</defname>
        </param>
        <param>
          <type>xgmin</type>
          <defname>xgmin</defname>
        </param>
        <param>
          <type>ygmin</type>
          <defname>ygmin</defname>
        </param>
        <param>
          <type>zgmin</type>
          <defname>zgmin</defname>
        </param>
        <param>
          <type>xgmax</type>
          <defname>xgmax</defname>
        </param>
        <param>
          <type>ygmax</type>
          <defname>ygmax</defname>
        </param>
        <param>
          <type>zgmax</type>
          <defname>zgmax</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>names</type>
          <defname>names</defname>
        </param>
        <param>
          <type>units</type>
          <defname>units</defname>
        </param>
        <briefdescription>
<para>This subroutine find the global min and max of either of all available tracer concentrations, or of a tracer that is being requested specifically, returning the number of tracers it has gone through. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">ind_start</parametername>
</parameternamelist>
<parameterdescription>
<para>The index of the tracer to start with</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">got_minmax</parametername>
</parameternamelist>
<parameterdescription>
<para>Indicates whether the global min and max are found for each tracer</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">gmin</parametername>
</parameternamelist>
<parameterdescription>
<para>Global minimum of each tracer, in kg times concentration units.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">gmax</parametername>
</parameternamelist>
<parameterdescription>
<para>Global maximum of each tracer, in kg times concentration units.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">xgmin</parametername>
</parameternamelist>
<parameterdescription>
<para>The x-position of the global minimum</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">ygmin</parametername>
</parameternamelist>
<parameterdescription>
<para>The y-position of the global minimum</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">zgmin</parametername>
</parameternamelist>
<parameterdescription>
<para>The z-position of the global minimum</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">xgmax</parametername>
</parameternamelist>
<parameterdescription>
<para>The x-position of the global maximum</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">ygmax</parametername>
</parameternamelist>
<parameterdescription>
<para>The y-position of the global maximum</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">zgmax</parametername>
</parameternamelist>
<parameterdescription>
<para>The z-position of the global maximum</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>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the control structure for this module.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">names</parametername>
</parameternamelist>
<parameterdescription>
<para>The names of the stocks calculated.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">units</parametername>
</parameternamelist>
<parameterdescription>
<para>The units of the stocks calculated.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>Return value, the number of tracers done here. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" line="634" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" bodystart="636" bodyend="710"/>
        <references refid="namespaceg__tracer__utils_1a8efa9a9fd92ac46615984df279ece6e6" compoundref="generic__tracer__utils_8F90" startline="273" endline="274">g_tracer_utils::g_tracer_get_alias</references>
        <referencedby refid="namespacemom__tracer__flow__control_1afd8526344e928c8c9505c921bf37447f" compoundref="MOM__tracer__flow__control_8F90" startline="545" endline="661">mom_tracer_flow_control::call_tracer_stocks</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__generic__tracer_1a4ba8950c78d0aef988f00cbf74a691d5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_generic_tracer::mom_generic_tracer_surface_state</definition>
        <argsstring>(sfc_state, h, G, CS)</argsstring>
        <name>mom_generic_tracer_surface_state</name>
        <param>
          <type>sfc_state</type>
          <defname>sfc_state</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>This subroutine calculates the surface state and sets coupler values for those generic tracers that have flux exchange with atmosphere. </para>        </briefdescription>
        <detaileddescription>
<para>This subroutine sets up the fields that the coupler needs to calculate the CFC fluxes between the ocean and atmosphere.</para><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="inout">sfc_state</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing fields that describe the surface state of the ocean.</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>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the control structure for this module. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" line="719" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" bodystart="720" bodyend="758"/>
        <references refid="namespacemom__diag__mediator_1a76e845bc64dfd5116f41fe90922b7937" compoundref="MOM__diag__mediator_8F90" startline="1929" endline="1934">mom_diag_mediator::get_diag_time_end</references>
        <references refid="namespacemom__spatial__means_1a87cad4a44f65c4849de870d15cc3f2a6" compoundref="MOM__spatial__means_8F90" startline="29" endline="47">mom_spatial_means::global_area_mean</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__generic__tracer_1ac7ac1e5cc988131c4bcb1ea11e901a29" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_generic_tracer::mom_generic_flux_init</definition>
        <argsstring>(verbosity)</argsstring>
        <name>mom_generic_flux_init</name>
        <param>
          <type>verbosity</type>
          <defname>verbosity</defname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">verbosity</parametername>
</parameternamelist>
<parameterdescription>
<para>A 0-9 integer indicating a level of verbosity. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" line="762" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" bodystart="763" bodyend="793"/>
        <references refid="namespacemom__generic__tracer_1adc781c54c3513e29b19d79bd8ef4cba4" compoundref="MOM__generic__tracer_8F90" startline="58" endline="58">g_registered</references>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__generic__tracer_1ac7e6d764d4df3376baeaf5ae4db7ba90" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_generic_tracer::mom_generic_tracer_fluxes_accumulate</definition>
        <argsstring>(flux_tmp, weight)</argsstring>
        <name>mom_generic_tracer_fluxes_accumulate</name>
        <param>
          <type>flux_tmp</type>
          <defname>flux_tmp</defname>
        </param>
        <param>
          <type>weight</type>
          <defname>weight</defname>
        </param>
        <briefdescription>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">flux_tmp</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing pointers to thermodynamic and tracer forcing fields.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">weight</parametername>
</parameternamelist>
<parameterdescription>
<para>A weight for accumulating this flux </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" line="796" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" bodystart="797" bodyend="802"/>
        <references refid="namespacegeneric__tracer_1ab3cfaa56cbb3c2bb392bebf5ce3c9ec0" compoundref="generic__tracer_8F90" startline="63" endline="65">generic_tracer::generic_tracer_coupler_accumulate</references>
        <referencedby refid="namespaceocean__model__mod_1a497d254b44f58fb797b9d75bc006eb60" compoundref="ocean__model__MOM_8F90" startline="424" endline="668">ocean_model_mod::update_ocean_model</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__generic__tracer_1a3890163ae69f4c113abd4523c20510e4" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_generic_tracer::mom_generic_tracer_get</definition>
        <argsstring>(name, member, array, CS)</argsstring>
        <name>mom_generic_tracer_get</name>
        <param>
          <type>name</type>
          <defname>name</defname>
        </param>
        <param>
          <type>member</type>
          <defname>member</defname>
        </param>
        <param>
          <type>array</type>
          <defname>array</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Copy the requested tracer into an array. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">name</parametername>
</parameternamelist>
<parameterdescription>
<para>Name of requested tracer.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">member</parametername>
</parameternamelist>
<parameterdescription>
<para>The tracer element to return.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">array</parametername>
</parameternamelist>
<parameterdescription>
<para>Array filled by this routine.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the control structure for this module. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" line="806" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" bodystart="807" bodyend="817"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__generic__tracer_1ada9424751eae6d320b5de26faa03a923" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_generic_tracer::end_mom_generic_tracer</definition>
        <argsstring>(CS)</argsstring>
        <name>end_mom_generic_tracer</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>This subroutine deallocates the memory owned by this module. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the control structure for this module. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" line="821" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" bodystart="822" bodyend="828"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Drives the generic version of tracers TOPAZ and CFC and other GFDL BGC components. </para>    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/tracer/MOM_generic_tracer.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
