<?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__diag__remap" kind="namespace" language="Fortran">
    <compoundname>mom_diag_remap</compoundname>
    <innerclass refid="structmom__diag__remap_1_1diag__remap__ctrl" prot="private">mom_diag_remap::diag_remap_ctrl</innerclass>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__diag__remap_1a3a3c0c9aaae22cbd2390eb42feafd622" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diag_remap::diag_remap_init</definition>
        <argsstring>(remap_cs, coord_tuple, answers_2018)</argsstring>
        <name>diag_remap_init</name>
        <param>
          <type>remap_cs</type>
          <defname>remap_cs</defname>
        </param>
        <param>
          <type>coord_tuple</type>
          <defname>coord_tuple</defname>
        </param>
        <param>
          <type>answers_2018</type>
          <defname>answers_2018</defname>
        </param>
        <briefdescription>
<para>Initialize a diagnostic remapping type with the given vertical coordinate. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">remap_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Diag remapping control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">coord_tuple</parametername>
</parameternamelist>
<parameterdescription>
<para>A string in form of MODULE_SUFFIX PARAMETER_SUFFIX COORDINATE_NAME</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">answers_2018</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, use the order of arithmetic and expressions for remapping that recover the answers from the end of 2018. Otherwise, use more robust forms of the same expressions. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="128" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" bodystart="129" bodyend="145"/>
        <references refid="namespaceregrid__consts_1a06ccba5b7b038bed853606a315df306a" compoundref="regrid__consts_8F90" startline="54" endline="69">regrid_consts::coordinatemode</references>
        <references refid="namespacemom__string__functions_1a7bfdab6bba33230cc94ed625e95022c9" compoundref="MOM__string__functions_8F90" startline="198" endline="202">mom_string_functions::extractword</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diag__remap_1a3cfd706c08bbd33ad21b77c6b045a9c5" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diag_remap::diag_remap_end</definition>
        <argsstring>(remap_cs)</argsstring>
        <name>diag_remap_end</name>
        <param>
          <type>remap_cs</type>
          <defname>remap_cs</defname>
        </param>
        <briefdescription>
<para>De-init a diagnostic remapping type. Free allocated memory. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">remap_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Diag remapping control structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="150" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" bodystart="151" bodyend="158"/>
        <referencedby refid="namespacemom__diag__remap_1a924b98a931082a788dfdabf86d40f295" compoundref="MOM__diag__remap_8F90" startline="167" endline="172">diag_remap_diag_registration_closed</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diag__remap_1a924b98a931082a788dfdabf86d40f295" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diag_remap::diag_remap_diag_registration_closed</definition>
        <argsstring>(remap_cs)</argsstring>
        <name>diag_remap_diag_registration_closed</name>
        <param>
          <type>remap_cs</type>
          <defname>remap_cs</defname>
        </param>
        <briefdescription>
<para>Inform that all diagnostics have been registered. If _set_active() has not been called on the remapping control structure will be disabled. This saves time in the case that a vertical coordinate was configured but no diagnostics which use the coordinate appeared in the diag_table. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">remap_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Diag remapping control structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="166" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" bodystart="167" bodyend="172"/>
        <references refid="namespacemom__diag__remap_1a3cfd706c08bbd33ad21b77c6b045a9c5" compoundref="MOM__diag__remap_8F90" startline="151" endline="158">diag_remap_end</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diag__remap_1ab530334ce02c1bedad08ba84507ee5d1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diag_remap::diag_remap_set_active</definition>
        <argsstring>(remap_cs)</argsstring>
        <name>diag_remap_set_active</name>
        <param>
          <type>remap_cs</type>
          <defname>remap_cs</defname>
        </param>
        <briefdescription>
<para>Indicate that this remapping type is actually used by the diag manager. If this is never called then the type will be disabled to save time. See further explanation with diag_remap_registration_closed. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">remap_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Diag remapping control structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="178" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" bodystart="179" bodyend="182"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diag__remap_1a0f3324e591a16e1ef6e3fc7b9f800270" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diag_remap::diag_remap_configure_axes</definition>
        <argsstring>(remap_cs, GV, US, param_file)</argsstring>
        <name>diag_remap_configure_axes</name>
        <param>
          <type>remap_cs</type>
          <defname>remap_cs</defname>
        </param>
        <param>
          <type>GV</type>
          <defname>GV</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <briefdescription>
<para>Configure the vertical axes for a diagnostic remapping control structure. Reads a configuration parameters to determine coordinate generation. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">remap_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Diag remap control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean vertical grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>Parameter file structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="187" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" bodystart="188" bodyend="241"/>
        <references refid="namespaceregrid__consts_1a06ccba5b7b038bed853606a315df306a" compoundref="regrid__consts_8F90" startline="54" endline="69">regrid_consts::coordinatemode</references>
        <references refid="namespacemom__string__functions_1a4d76e9e8c2cd53f210b02006924a9212" compoundref="MOM__string__functions_8F90" startline="26" endline="38">mom_string_functions::lowercase</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diag__remap_1aaaa62e290958a9364ffd3d73825ce3f2" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diag_remap::diag_remap_get_axes_info</definition>
        <argsstring>(remap_cs, nz, id_layer, id_interface)</argsstring>
        <name>diag_remap_get_axes_info</name>
        <param>
          <type>remap_cs</type>
          <defname>remap_cs</defname>
        </param>
        <param>
          <type>nz</type>
          <defname>nz</defname>
        </param>
        <param>
          <type>id_layer</type>
          <defname>id_layer</defname>
        </param>
        <param>
          <type>id_interface</type>
          <defname>id_interface</defname>
        </param>
        <briefdescription>
<para>Get layer and interface axes ids for this coordinate Needed when defining axes groups. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">remap_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Diagnostic coordinate control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">nz</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of vertical levels for the coordinate</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">id_layer</parametername>
</parameternamelist>
<parameterdescription>
<para>1D-axes id for layer points</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">id_interface</parametername>
</parameternamelist>
<parameterdescription>
<para>1D-axes id for interface points </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="246" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" bodystart="247" bodyend="255"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diag__remap_1af12d73b4028ee53365d1bdad8a2baa00" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>logical function, public</type>
        <definition>logical function, public mom_diag_remap::diag_remap_axes_configured</definition>
        <argsstring>(remap_cs)</argsstring>
        <name>diag_remap_axes_configured</name>
        <param>
          <type>remap_cs</type>
          <defname>remap_cs</defname>
        </param>
        <briefdescription>
<para>Whether or not the axes for this vertical coordinated has been configured. Configuration is complete when <ref refid="namespacemom__diag__remap_1a0f3324e591a16e1ef6e3fc7b9f800270" kindref="member">diag_remap_configure_axes()</ref> has been successfully called. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">remap_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Diagnostic coordinate control structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="262" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" bodystart="263" bodyend="267"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diag__remap_1aaa0a887dc724438845e88598d439b20a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diag_remap::diag_remap_update</definition>
        <argsstring>(remap_cs, G, GV, US, h, T, S, eqn_of_state, h_target)</argsstring>
        <name>diag_remap_update</name>
        <param>
          <type>remap_cs</type>
          <defname>remap_cs</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>T</type>
          <defname>T</defname>
        </param>
        <param>
          <type>S</type>
          <defname>S</defname>
        </param>
        <param>
          <type>eqn_of_state</type>
          <defname>eqn_of_state</defname>
        </param>
        <param>
          <type>h_target</type>
          <defname>h_target</defname>
        </param>
        <briefdescription>
<para>Build/update target vertical grids for diagnostic remapping. </para>        </briefdescription>
        <detaileddescription>
<para><simplesect kind="note"><para>The target grids need to be updated whenever sea surface height or layer thicknesses changes. In the case of density-based coordinates then technically we should also regenerate the target grid whenever T/S change.</para></simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">remap_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Diagnostic coordinate control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>g</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean&apos;s grid type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean vertical grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>New thickness [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">t</parametername>
</parameternamelist>
<parameterdescription>
<para>New temperatures [degC]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">s</parametername>
</parameternamelist>
<parameterdescription>
<para>New salinities [ppt]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>eqn_of_state</parametername>
</parameternamelist>
<parameterdescription>
<para>A pointer to the equation of state</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">h_target</parametername>
</parameternamelist>
<parameterdescription>
<para>The new diagnostic thicknesses [H ~&gt; m or kg m-2] </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="275" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" bodystart="276" bodyend="346"/>
        <references refid="namespacecoord__rho_1ac3f19bfa0e6b622cdf045c348ec4d183" compoundref="coord__rho_8F90" startline="92" endline="169">coord_rho::build_rho_column</references>
        <references refid="namespacecoord__sigma_1af3954fd955a967aa2ff11c2fc115dc19" compoundref="coord__sigma_8F90" startline="64" endline="80">coord_sigma::build_sigma_column</references>
        <references refid="namespacecoord__zlike_1af2bdac8481050f2b0ff7c5fc01f26e1c" compoundref="coord__zlike_8F90" startline="65" endline="141">coord_zlike::build_zstar_column</references>
        <references refid="namespaceregrid__consts_1a06ccba5b7b038bed853606a315df306a" compoundref="regrid__consts_8F90" startline="54" endline="69">regrid_consts::coordinatemode</references>
        <references refid="namespacemom__regridding_1a358f07a447816230753c8d3d5a0fb8af" compoundref="MOM__regridding_8F90" startline="2372" endline="2375">mom_regridding::get_rho_cs</references>
        <references refid="namespacemom__regridding_1aef5b07937353a9fe2ce51dd6c2beed54" compoundref="MOM__regridding_8F90" startline="2364" endline="2367">mom_regridding::get_sigma_cs</references>
        <references refid="namespacemom__regridding_1a8ff04f8857825fcc814cdad9684717e7" compoundref="MOM__regridding_8F90" startline="2356" endline="2359">mom_regridding::get_zlike_cs</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__diag__remap_1a125ada6654d47c8d9750b620cdd0af7c" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diag_remap::diag_remap_do_remap</definition>
        <argsstring>(remap_cs, G, GV, h, staggered_in_x, staggered_in_y, mask, field, remapped_field)</argsstring>
        <name>diag_remap_do_remap</name>
        <param>
          <type>remap_cs</type>
          <defname>remap_cs</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>staggered_in_x</type>
          <defname>staggered_in_x</defname>
        </param>
        <param>
          <type>staggered_in_y</type>
          <defname>staggered_in_y</defname>
        </param>
        <param>
          <type>mask</type>
          <defname>mask</defname>
        </param>
        <param>
          <type>field</type>
          <defname>field</defname>
        </param>
        <param>
          <type>remapped_field</type>
          <defname>remapped_field</defname>
        </param>
        <briefdescription>
<para>Remap diagnostic field to alternative vertical grid. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">remap_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Diagnostic coodinate control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>Ocean grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>ocean vertical grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>The current thicknesses [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">staggered_in_x</parametername>
</parameternamelist>
<parameterdescription>
<para>True is the x-axis location is at u or q points</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">staggered_in_y</parametername>
</parameternamelist>
<parameterdescription>
<para>True is the y-axis location is at v or q points</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>mask</parametername>
</parameternamelist>
<parameterdescription>
<para>A mask for the field [nondim]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">field</parametername>
</parameternamelist>
<parameterdescription>
<para>The diagnostic field to be remapped [A]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">remapped_field</parametername>
</parameternamelist>
<parameterdescription>
<para>Field remapped to new coordinate [A] </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="350" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" bodystart="352" bodyend="442"/>
        <references refid="namespacemom__error__handler_1a33bcd190d460095104954f2e654f9fe6" compoundref="MOM__error__handler_8F90" startline="182" endline="188">mom_error_handler::assert</references>
        <references refid="namespacemom__remapping_1abe4a1d5b1b9f26063a5e4aba5be0b0a5" compoundref="MOM__remapping_8F90" startline="190" endline="262">mom_remapping::remapping_core_h</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diag__remap_1a5b0f7f8140918d3567bcc568cda0932e" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diag_remap::diag_remap_calc_hmask</definition>
        <argsstring>(remap_cs, G, mask)</argsstring>
        <name>diag_remap_calc_hmask</name>
        <param>
          <type>remap_cs</type>
          <defname>remap_cs</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>mask</type>
          <defname>mask</defname>
        </param>
        <briefdescription>
<para>Calculate masks for target grid. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">remap_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Diagnostic coodinate control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>Ocean grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">mask</parametername>
</parameternamelist>
<parameterdescription>
<para>h-point mask for target grid [nondim] </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="446" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" bodystart="447" bodyend="486"/>
        <references refid="namespacemom__error__handler_1a33bcd190d460095104954f2e654f9fe6" compoundref="MOM__error__handler_8F90" startline="182" endline="188">mom_error_handler::assert</references>
        <references refid="namespaceregrid__consts_1a06ccba5b7b038bed853606a315df306a" compoundref="regrid__consts_8F90" startline="54" endline="69">regrid_consts::coordinatemode</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diag__remap_1ae1d52582964ba4213e0fa9b7ea183c39" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diag_remap::vertically_reintegrate_diag_field</definition>
        <argsstring>(remap_cs, G, h, h_target, staggered_in_x, staggered_in_y, mask, field, reintegrated_field)</argsstring>
        <name>vertically_reintegrate_diag_field</name>
        <param>
          <type>remap_cs</type>
          <defname>remap_cs</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>h_target</type>
          <defname>h_target</defname>
        </param>
        <param>
          <type>staggered_in_x</type>
          <defname>staggered_in_x</defname>
        </param>
        <param>
          <type>staggered_in_y</type>
          <defname>staggered_in_y</defname>
        </param>
        <param>
          <type>mask</type>
          <defname>mask</defname>
        </param>
        <param>
          <type>field</type>
          <defname>field</defname>
        </param>
        <param>
          <type>reintegrated_field</type>
          <defname>reintegrated_field</defname>
        </param>
        <briefdescription>
<para>Vertically re-grid an already vertically-integrated diagnostic field to alternative vertical grid. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">remap_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Diagnostic coodinate control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>Ocean grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>The thicknesses of the source grid [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_target</parametername>
</parameternamelist>
<parameterdescription>
<para>The thicknesses of the target grid [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">staggered_in_x</parametername>
</parameternamelist>
<parameterdescription>
<para>True is the x-axis location is at u or q points</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">staggered_in_y</parametername>
</parameternamelist>
<parameterdescription>
<para>True is the y-axis location is at v or q points</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>mask</parametername>
</parameternamelist>
<parameterdescription>
<para>A mask for the field [nondim]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">field</parametername>
</parameternamelist>
<parameterdescription>
<para>The diagnostic field to be remapped [A]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">reintegrated_field</parametername>
</parameternamelist>
<parameterdescription>
<para>Field argument remapped to alternative coordinate [A] </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="490" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" bodystart="492" bodyend="567"/>
        <references refid="namespacemom__error__handler_1a33bcd190d460095104954f2e654f9fe6" compoundref="MOM__error__handler_8F90" startline="182" endline="188">mom_error_handler::assert</references>
        <references refid="namespacemom__diag__vkernels_1a89369e4bf4b7795f6e384762d11f0d23" compoundref="MOM__diag__vkernels_8F90" startline="94" endline="166">mom_diag_vkernels::reintegrate_column</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diag__remap_1a058317602b134c09ff42005dfe8b2bc0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diag_remap::vertically_interpolate_diag_field</definition>
        <argsstring>(remap_cs, G, h, staggered_in_x, staggered_in_y, mask, field, interpolated_field)</argsstring>
        <name>vertically_interpolate_diag_field</name>
        <param>
          <type>remap_cs</type>
          <defname>remap_cs</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <param>
          <type>staggered_in_x</type>
          <defname>staggered_in_x</defname>
        </param>
        <param>
          <type>staggered_in_y</type>
          <defname>staggered_in_y</defname>
        </param>
        <param>
          <type>mask</type>
          <defname>mask</defname>
        </param>
        <param>
          <type>field</type>
          <defname>field</defname>
        </param>
        <param>
          <type>interpolated_field</type>
          <defname>interpolated_field</defname>
        </param>
        <briefdescription>
<para>Vertically interpolate diagnostic field to alternative vertical grid. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">remap_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Diagnostic coodinate control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>Ocean grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>The current thicknesses [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">staggered_in_x</parametername>
</parameternamelist>
<parameterdescription>
<para>True is the x-axis location is at u or q points</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">staggered_in_y</parametername>
</parameternamelist>
<parameterdescription>
<para>True is the y-axis location is at v or q points</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>mask</parametername>
</parameternamelist>
<parameterdescription>
<para>A mask for the field [nondim]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">field</parametername>
</parameternamelist>
<parameterdescription>
<para>The diagnostic field to be remapped [A]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">interpolated_field</parametername>
</parameternamelist>
<parameterdescription>
<para>Field argument remapped to alternative coordinate [A] </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="571" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" bodystart="573" bodyend="648"/>
        <references refid="namespacemom__error__handler_1a33bcd190d460095104954f2e654f9fe6" compoundref="MOM__error__handler_8F90" startline="182" endline="188">mom_error_handler::assert</references>
        <references refid="namespacemom__diag__vkernels_1a4f42f472a725a147f8d97a68b2028c5b" compoundref="MOM__diag__vkernels_8F90" startline="19" endline="89">mom_diag_vkernels::interpolate_column</references>
      </memberdef>
      <memberdef kind="function" id="namespacemom__diag__remap_1ae649e9dc9616184266d542bce5d9a452" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_diag_remap::horizontally_average_diag_field</definition>
        <argsstring>(G, GV, h, staggered_in_x, staggered_in_y, is_layer, is_extensive, field, averaged_field, averaged_mask)</argsstring>
        <name>horizontally_average_diag_field</name>
        <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>staggered_in_x</type>
          <defname>staggered_in_x</defname>
        </param>
        <param>
          <type>staggered_in_y</type>
          <defname>staggered_in_y</defname>
        </param>
        <param>
          <type>is_layer</type>
          <defname>is_layer</defname>
        </param>
        <param>
          <type>is_extensive</type>
          <defname>is_extensive</defname>
        </param>
        <param>
          <type>field</type>
          <defname>field</defname>
        </param>
        <param>
          <type>averaged_field</type>
          <defname>averaged_field</defname>
        </param>
        <param>
          <type>averaged_mask</type>
          <defname>averaged_mask</defname>
        </param>
        <briefdescription>
<para>Horizontally average field. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>Ocean grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gv</parametername>
</parameternamelist>
<parameterdescription>
<para>The ocean vertical grid structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>The current thicknesses [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">staggered_in_x</parametername>
</parameternamelist>
<parameterdescription>
<para>True if the x-axis location is at u or q points</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">staggered_in_y</parametername>
</parameternamelist>
<parameterdescription>
<para>True if the y-axis location is at v or q points</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">is_layer</parametername>
</parameternamelist>
<parameterdescription>
<para>True if the z-axis location is at h points</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">is_extensive</parametername>
</parameternamelist>
<parameterdescription>
<para>True if the z-direction is spatially integrated (over layers)</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">field</parametername>
</parameternamelist>
<parameterdescription>
<para>The diagnostic field to be remapped [A]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">averaged_field</parametername>
</parameternamelist>
<parameterdescription>
<para>Field argument horizontally averaged [A]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">averaged_mask</parametername>
</parameternamelist>
<parameterdescription>
<para>Mask for horizontally averaged field [nondim] </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="652" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" bodystart="656" bodyend="796"/>
        <references refid="namespacemom__error__handler_1a33bcd190d460095104954f2e654f9fe6" compoundref="MOM__error__handler_8F90" startline="182" endline="188">mom_error_handler::assert</references>
        <referencedby refid="namespacemom__diag__mediator_1ab41a1779c5edb50aa7256477cef952ae" compoundref="MOM__diag__mediator_8F90" startline="1817" endline="1866">mom_diag_mediator::post_xy_average</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>provides runtime remapping of diagnostics to z star, sigma and rho vertical coordinates. </para>    </briefdescription>
    <detaileddescription>
<para>The <ref refid="structmom__diag__remap_1_1diag__remap__ctrl" kindref="compound">diag_remap_ctrl</ref> type represents a remapping of diagnostics to a particular vertical coordinate. The module is used by the diag mediator module in the following way:<orderedlist>
<listitem><para><ref refid="namespacemom__diag__remap_1a3a3c0c9aaae22cbd2390eb42feafd622" kindref="member">diag_remap_init()</ref> is called to initialize a <ref refid="structmom__diag__remap_1_1diag__remap__ctrl" kindref="compound">diag_remap_ctrl</ref> instance.</para></listitem><listitem><para><ref refid="namespacemom__diag__remap_1a0f3324e591a16e1ef6e3fc7b9f800270" kindref="member">diag_remap_configure_axes()</ref> is called to read the configuration file and set up the vertical coordinate / axes definitions.</para></listitem><listitem><para><ref refid="namespacemom__diag__remap_1aaaa62e290958a9364ffd3d73825ce3f2" kindref="member">diag_remap_get_axes_info()</ref> returns information needed for the diag mediator to define new axes for the remapped diagnostics.</para></listitem><listitem><para><ref refid="namespacemom__diag__remap_1aaa0a887dc724438845e88598d439b20a" kindref="member">diag_remap_update()</ref> is called periodically (whenever h, T or S change) to either create or update the target remapping grids.</para></listitem><listitem><para><ref refid="namespacemom__diag__remap_1a125ada6654d47c8d9750b620cdd0af7c" kindref="member">diag_remap_do_remap()</ref> is called from within a diag post() to do the remapping before the diagnostic is written out. </para></listitem></orderedlist>
</para>    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_diag_remap.F90" line="56" column="1"/>
  </compounddef>
</doxygen>
