<?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="namespaceideal__age__example" kind="namespace" language="Fortran">
    <compoundname>ideal_age_example</compoundname>
    <innerclass refid="structideal__age__example_1_1ideal__age__tracer__cs" prot="public">ideal_age_example::ideal_age_tracer_cs</innerclass>
      <sectiondef kind="var">
      <memberdef kind="variable" id="namespaceideal__age__example_1a50d4c454d945cfb178a50dcad0f4ae15" prot="private" static="no" mutable="no">
        <type>integer, parameter</type>
        <definition>integer, parameter ideal_age_example::ntr_max</definition>
        <argsstring></argsstring>
        <name>ntr_max</name>
        <initializer>= 3</initializer>
        <briefdescription>
<para>the maximum number of tracers in this module. </para>        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" line="35" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" bodystart="35" bodyend="35"/>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespaceideal__age__example_1a58d550a02148b87b1d1ce979fcaf6c00" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>logical function, public</type>
        <definition>logical function, public ideal_age_example::register_ideal_age_tracer</definition>
        <argsstring>(HI, GV, param_file, CS, tr_Reg, restart_CS)</argsstring>
        <name>register_ideal_age_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>Register the ideal age tracer fields to be used with MOM. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hi</parametername>
</parameternamelist>
<parameterdescription>
<para>A horizontal index type structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure to parse for run-time parameters</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure returned by a previous call to register_ideal_age_tracer.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>tr_reg</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer that is set to point to the control structure for the tracer advection and diffusion module</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>restart_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the restart control structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" line="72" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" bodystart="73" bodyend="192"/>
        <references refid="namespaceatmos__ocean__fluxes__mod_1a1bd0443a803dd443bd7a4f24dae28e13" compoundref="atmos__ocean__fluxes_8F90" startline="18" endline="36">atmos_ocean_fluxes_mod::aof_set_coupler_flux</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__io_1aa583d22dfaf16e3157b2741d838f5240" compoundref="MOM__io_8F90" startline="699" endline="737">mom_io::query_vardesc</references>
        <references refid="namespacemom__tracer__registry_1a97a70989bd0318f51d90c2fc6f87c6f5" compoundref="MOM__tracer__registry_8F90" startline="158" endline="325">mom_tracer_registry::register_tracer</references>
        <references refid="namespacemom__io_1a09be50ad112d6bc134d06d82fcbe1fdc" compoundref="MOM__io_8F90" startline="600" endline="632">mom_io::var_desc</references>
      </memberdef>
      <memberdef kind="function" id="namespaceideal__age__example_1ae8c12d0128c24a491f7af62d4dd6ec5d" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public ideal_age_example::initialize_ideal_age_tracer</definition>
        <argsstring>(restart, day, G, GV, US, h, diag, OBC, CS, sponge_CSp)</argsstring>
        <name>initialize_ideal_age_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>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>
        <briefdescription>
<para>Sets the ideal age traces to their initial values and sets up the tracer output. </para>        </briefdescription>
        <detaileddescription>
<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="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thicknesses [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">diag</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure that is used to regulate 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>The control structure returned by a previous call to register_ideal_age_tracer.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sponge_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>Pointer to the control structure for the sponges. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" line="196" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" bodystart="198" bodyend="280"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <references refid="namespacemom__io_1aa583d22dfaf16e3157b2741d838f5240" compoundref="MOM__io_8F90" startline="699" endline="737">mom_io::query_vardesc</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="namespaceideal__age__example_1a6c2fb023e159a153d56220585b57ceb5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public ideal_age_example::ideal_age_tracer_column_physics</definition>
        <argsstring>(h_old, h_new, ea, eb, fluxes, dt, G, GV, US, CS, evap_CFL_limit, minimum_forcing_depth)</argsstring>
        <name>ideal_age_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>dt</type>
          <defname>dt</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>evap_CFL_limit</type>
          <defname>evap_CFL_limit</defname>
        </param>
        <param>
          <type>minimum_forcing_depth</type>
          <defname>minimum_forcing_depth</defname>
        </param>
        <briefdescription>
<para>Applies diapycnal diffusion, aging and regeneration at the surface to the ideal age tracers. </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_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>an array to which the amount of fluid entrained</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">eb</parametername>
</parameternamelist>
<parameterdescription>
<para>an array to which the amount of fluid entrained</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">fluxes</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure containing pointers to thermodynamic and tracer forcing fields. Unused 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 direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure returned by a previous call to register_ideal_age_tracer.</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>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" line="284" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" bodystart="286" bodyend="369"/>
        <references refid="namespacemom__tracer__diabatic_1ad4d3d4de0f2b84c15bccc5eb2f767df3" compoundref="MOM__tracer__diabatic_8F90" startline="230" endline="443">mom_tracer_diabatic::applytracerboundaryfluxesinout</references>
        <references refid="namespacemom__tracer__diabatic_1ac5d57973547cc4ed3a89808d3910943e" compoundref="MOM__tracer__diabatic_8F90" startline="27" endline="222">mom_tracer_diabatic::tracer_vertdiff</references>
      </memberdef>
      <memberdef kind="function" id="namespaceideal__age__example_1a2300d82e30802a3127f4a63277d37776" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>integer function, public</type>
        <definition>integer function, public ideal_age_example::ideal_age_stock</definition>
        <argsstring>(h, stocks, G, GV, CS, names, units, stock_index)</argsstring>
        <name>ideal_age_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>Calculates the mass-weighted integral of all tracer stocks, returning the number of stocks it has calculated. If stock_index is present, only the stock corresponding to that coded index is found. </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">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 direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s vertical grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure returned by a previous call to register_ideal_age_tracer.</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>The number of stocks calculated here. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" line="374" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" bodystart="375" bodyend="417"/>
        <references refid="namespacemom__io_1aa583d22dfaf16e3157b2741d838f5240" compoundref="MOM__io_8F90" startline="699" endline="737">mom_io::query_vardesc</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="namespaceideal__age__example_1aea477e25ddf0fdc4f05fd45a102eb7c0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public ideal_age_example::ideal_age_tracer_surface_state</definition>
        <argsstring>(sfc_state, h, G, CS)</argsstring>
        <name>ideal_age_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 extracts the surface fields from this tracer package that are to be shared with the atmosphere in coupled configurations. This particular tracer package does not report anything back to the coupler. </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="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 thickness [H ~&gt; m or kg m-2].</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure returned by a previous call to register_ideal_age_tracer. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" line="423" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" bodystart="424" bodyend="450"/>
      </memberdef>
      <memberdef kind="function" id="namespaceideal__age__example_1aa60b31c0f0a31db75ba3522f52c8d648" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public ideal_age_example::ideal_age_example_end</definition>
        <argsstring>(CS)</argsstring>
        <name>ideal_age_example_end</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Deallocate any memory associated with this tracer package. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>The control structure returned by a previous call to register_ideal_age_tracer. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" line="454" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" bodystart="455" bodyend="463"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>A tracer package of ideal age tracers. </para>    </briefdescription>
    <detaileddescription>
<para>Originally by Robert Hallberg, 2002.</para><para>This file contains an example of the code that is needed to set up and use a set (in this case two) of dynamically passive tracers for diagnostic purposes. The tracers here are an ideal age tracer that ages at a rate of 1/year once it is isolated from the surface, and a vintage tracer, whose surface concentration grows exponen- with time with a 30-year timescale (similar to CFCs). </para>    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/tracer/ideal_age_example.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
