<?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.15">
  <compounddef id="namespaceuser__tracer__example" kind="namespace" language="Fortran">
    <compoundname>user_tracer_example</compoundname>
    <innerclass refid="structuser__tracer__example_1_1user__tracer__example__cs" prot="public">user_tracer_example::user_tracer_example_cs</innerclass>
      <sectiondef kind="var">
      <memberdef kind="variable" id="namespaceuser__tracer__example_1a8878e6c0ffc368959f12d7c06e1d60ba" prot="private" static="no" mutable="no">
        <type>integer, parameter</type>
        <definition>integer, parameter user_tracer_example::ntr</definition>
        <argsstring></argsstring>
        <name>ntr</name>
        <initializer>= 1</initializer>
        <briefdescription>
<para>The number of tracers in this module. </para>
        </briefdescription>
        <detaileddescription>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" line="32" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" bodystart="32" bodyend="32"/>
        <referencedby refid="namespaceuser__tracer__example_1a5d96d128687dfa6fdb8ae17f7ef2813a" compoundref="tracer__example_8F90" startline="264" endline="356">tracer_column_physics</referencedby>
        <referencedby refid="namespaceuser__tracer__example_1a00806c17a421a7f59d45022ad2472bf3" compoundref="tracer__example_8F90" startline="141" endline="255">user_initialize_tracer</referencedby>
        <referencedby refid="namespaceuser__tracer__example_1a71efc349b3fbeb6f4cb2155de1f8bbe5" compoundref="tracer__example_8F90" startline="57" endline="134">user_register_tracer_example</referencedby>
        <referencedby refid="namespaceuser__tracer__example_1a040e2b8e8c5a41ccb6398e66d820c4be" compoundref="tracer__example_8F90" startline="363" endline="403">user_tracer_stock</referencedby>
        <referencedby refid="namespaceuser__tracer__example_1ab45158867aad4ae53c99e7139abfaf2a" compoundref="tracer__example_8F90" startline="409" endline="435">user_tracer_surface_state</referencedby>
      </memberdef>
      </sectiondef>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespaceuser__tracer__example_1a71efc349b3fbeb6f4cb2155de1f8bbe5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>logical function, public</type>
        <definition>logical function, public user_tracer_example::user_register_tracer_example</definition>
        <argsstring>(HI, GV, param_file, CS, tr_Reg, restart_CS)</argsstring>
        <name>user_register_tracer_example</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>This subroutine is used to register tracer fields and subroutines 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>A pointer that is set to point to the control structure for this module </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/tracer_example.F90" line="56" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" bodystart="57" bodyend="134"/>
        <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="namespaceuser__tracer__example_1a8878e6c0ffc368959f12d7c06e1d60ba" compoundref="tracer__example_8F90" startline="32" endline="32">ntr</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="namespaceuser__tracer__example_1a00806c17a421a7f59d45022ad2472bf3" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public user_tracer_example::user_initialize_tracer</definition>
        <argsstring>(restart, day, G, GV, h, diag, OBC, CS, sponge_CSp)</argsstring>
        <name>user_initialize_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>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>This subroutine initializes the NTR tracer fields in tr(:,:,:,:) and it 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">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 USER_register_tracer_example. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>sponge_csp</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the control structure for the sponges, if they are in use. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" line="139" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" bodystart="141" bodyend="255"/>
        <references refid="namespacemom__error__handler_1a460cfb79a06c29fc249952c2a3710d67" compoundref="MOM__error__handler_8F90" startline="72" endline="92">mom_error_handler::mom_error</references>
        <references refid="namespaceuser__tracer__example_1a8878e6c0ffc368959f12d7c06e1d60ba" compoundref="tracer__example_8F90" startline="32" endline="32">ntr</references>
        <references refid="namespacemom__io_1aa583d22dfaf16e3157b2741d838f5240" compoundref="MOM__io_8F90" startline="699" endline="737">mom_io::query_vardesc</references>
        <references refid="namespacemom__sponge_1af3da4a8b352c4130919d7bfedf1a5a3e" compoundref="MOM__sponge_8F90" startline="214" endline="270">mom_sponge::set_up_sponge_field</references>
      </memberdef>
      <memberdef kind="function" id="namespaceuser__tracer__example_1a5d96d128687dfa6fdb8ae17f7ef2813a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public user_tracer_example::tracer_column_physics</definition>
        <argsstring>(h_old, h_new, ea, eb, fluxes, dt, G, GV, US, CS)</argsstring>
        <name>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>
        <briefdescription>
<para>This subroutine applies diapycnal diffusion and any other column tracer physics or chemistry to the tracers from this file. This is a simple example of a set of advected passive tracers. The arguments to this subroutine are redundant in that h_new(k) = h_old(k) + ea(k) - eb(k-1) + eb(k) - ea(k+1) </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 USER_register_tracer_example. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" line="263" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" bodystart="264" bodyend="356"/>
        <references refid="namespaceuser__tracer__example_1a8878e6c0ffc368959f12d7c06e1d60ba" compoundref="tracer__example_8F90" startline="32" endline="32">ntr</references>
      </memberdef>
      <memberdef kind="function" id="namespaceuser__tracer__example_1a040e2b8e8c5a41ccb6398e66d820c4be" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>integer function, public</type>
        <definition>integer function, public user_tracer_example::user_tracer_stock</definition>
        <argsstring>(h, stocks, G, GV, CS, names, units, stock_index)</argsstring>
        <name>user_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 function calculates the mass-weighted integral of all tracer stocks, 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>The control structure returned by a previous call to register_USER_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>Return value: the number of stocks calculated here. </para>
</simplesect>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" line="362" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" bodystart="363" bodyend="403"/>
        <references refid="namespaceuser__tracer__example_1a8878e6c0ffc368959f12d7c06e1d60ba" compoundref="tracer__example_8F90" startline="32" endline="32">ntr</references>
        <references refid="namespacemom__io_1aa583d22dfaf16e3157b2741d838f5240" compoundref="MOM__io_8F90" startline="699" endline="737">mom_io::query_vardesc</references>
      </memberdef>
      <memberdef kind="function" id="namespaceuser__tracer__example_1ab45158867aad4ae53c99e7139abfaf2a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public user_tracer_example::user_tracer_surface_state</definition>
        <argsstring>(sfc_state, h, G, CS)</argsstring>
        <name>user_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. </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 thicknesses [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_USER_tracer. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" line="408" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" bodystart="409" bodyend="435"/>
        <references refid="namespaceuser__tracer__example_1a8878e6c0ffc368959f12d7c06e1d60ba" compoundref="tracer__example_8F90" startline="32" endline="32">ntr</references>
      </memberdef>
      <memberdef kind="function" id="namespaceuser__tracer__example_1a800285abb2c731b52159ebcc476b9174" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public user_tracer_example::user_tracer_example_end</definition>
        <argsstring>(CS)</argsstring>
        <name>user_tracer_example_end</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Clean up allocated memory at the end. </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_USER_tracer. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" line="439" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" bodystart="440" bodyend="447"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>A sample tracer package that has striped initial conditions. </para>
    </briefdescription>
    <detaileddescription>
<para>Original 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 one) of dynamically passive tracers.</para>
<para>A single subroutine is called from within each file to register each of the tracers for reinitialization and advection and to register the subroutine that initializes the tracers and set up their output and the subroutine that does any tracer physics or chemistry along with diapycnal mixing (included here because some tracers may float or swim vertically or dye diapycnal processes). </para>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/tracer/tracer_example.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
