<?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.17">
  <compounddef id="namespacepseudo__salt__tracer" kind="namespace" language="Fortran">
    <compoundname>pseudo_salt_tracer</compoundname>
    <innerclass refid="structpseudo__salt__tracer_1_1pseudo__salt__tracer__cs" prot="public">pseudo_salt_tracer::pseudo_salt_tracer_cs</innerclass>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacepseudo__salt__tracer_1a147eabcabc9a787c01310dd67a5bab08" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>logical function, public</type>
        <definition>logical function, public pseudo_salt_tracer::register_pseudo_salt_tracer</definition>
        <argsstring>(HI, GV, param_file, CS, tr_Reg, restart_CS)</argsstring>
        <name>register_pseudo_salt_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 pseudo-salt tracer with MOM6. </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_pseudo_salt_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/pseudo_salt_tracer.F90" line="60" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/pseudo_salt_tracer.F90" bodystart="61" bodyend="112"/>
        <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="namespacepseudo__salt__tracer_1a012fcdab14755a8eec9c68f0ddbff012" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public pseudo_salt_tracer::initialize_pseudo_salt_tracer</definition>
        <argsstring>(restart, day, G, GV, h, diag, OBC, CS, sponge_CSp, tv)</argsstring>
        <name>initialize_pseudo_salt_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>
        <param>
          <type>tv</type>
          <defname>tv</defname>
        </param>
        <briefdescription>
<para>Initialize the pseudo-salt tracer. </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 register_pseudo_salt_tracer. </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 direction="in">tv</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure pointing to various thermodynamic variables </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/pseudo_salt_tracer.F90" line="116" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/pseudo_salt_tracer.F90" bodystart="118" bodyend="170"/>
        <references refid="namespacemom__io_1aa583d22dfaf16e3157b2741d838f5240" compoundref="MOM__io_8F90" startline="699" endline="737">mom_io::query_vardesc</references>
      </memberdef>
      <memberdef kind="function" id="namespacepseudo__salt__tracer_1a7c534dce5f33ab195485552f63cff657" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public pseudo_salt_tracer::pseudo_salt_tracer_column_physics</definition>
        <argsstring>(h_old, h_new, ea, eb, fluxes, dt, G, GV, US, CS, tv, debug, evap_CFL_limit, minimum_forcing_depth)</argsstring>
        <name>pseudo_salt_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>tv</type>
          <defname>tv</defname>
        </param>
        <param>
          <type>debug</type>
          <defname>debug</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>Apply sources, sinks and diapycnal diffusion to the tracers in this package. </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_pseudo_salt_tracer. </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">debug</parametername>
</parameternamelist>
<parameterdescription>
<para>If true calculate checksums </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/pseudo_salt_tracer.F90" line="174" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/pseudo_salt_tracer.F90" bodystart="176" bodyend="247"/>
        <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="namespacepseudo__salt__tracer_1a282f3c84b7e7ccdaa6d9344342705a6e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>integer function, public</type>
        <definition>integer function, public pseudo_salt_tracer::pseudo_salt_stock</definition>
        <argsstring>(h, stocks, G, GV, CS, names, units, stock_index)</argsstring>
        <name>pseudo_salt_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 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_pseudo_salt_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/pseudo_salt_tracer.F90" line="253" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/pseudo_salt_tracer.F90" bodystart="254" bodyend="296"/>
        <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="namespacepseudo__salt__tracer_1aae962f10f82225feec43dd4a11faca6a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public pseudo_salt_tracer::pseudo_salt_tracer_surface_state</definition>
        <argsstring>(sfc_state, h, G, CS)</argsstring>
        <name>pseudo_salt_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_pseudo_salt_tracer. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/pseudo_salt_tracer.F90" line="302" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/pseudo_salt_tracer.F90" bodystart="303" bodyend="321"/>
      </memberdef>
      <memberdef kind="function" id="namespacepseudo__salt__tracer_1a97689343fce90aaa0a60f836b7dea9ad" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public pseudo_salt_tracer::pseudo_salt_tracer_end</definition>
        <argsstring>(CS)</argsstring>
        <name>pseudo_salt_tracer_end</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>Deallocate 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_pseudo_salt_tracer. </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/tracer/pseudo_salt_tracer.F90" line="325" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/tracer/pseudo_salt_tracer.F90" bodystart="326" bodyend="334"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>A tracer package that mimics salinity. </para>
    </briefdescription>
    <detaileddescription>
<para>By Andrew Shao, 2016</para>
<para>This file contains the routines necessary to model a passive tracer that uses the same boundary fluxes as salinity. At the beginning of the run, salt is set to the same as tvS. Any deviations between this salt-like tracer and tvS signifies a difference between how active and passive tracers are treated. </para>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/tracer/pseudo_salt_tracer.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
