<?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="namespacecoord__rho" kind="namespace" language="Fortran">
    <compoundname>coord_rho</compoundname>
    <innerclass refid="structcoord__rho_1_1rho__cs" prot="public">coord_rho::rho_cs</innerclass>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacecoord__rho_1a86640b2be846b291c71f1c38b8ff9878" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public coord_rho::init_coord_rho</definition>
        <argsstring>(CS, nk, ref_pressure, target_density, interp_CS)</argsstring>
        <name>init_coord_rho</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>nk</type>
          <defname>nk</defname>
        </param>
        <param>
          <type>ref_pressure</type>
          <defname>ref_pressure</defname>
        </param>
        <param>
          <type>target_density</type>
          <defname>target_density</defname>
        </param>
        <param>
          <type>interp_CS</type>
          <defname>interp_CS</defname>
        </param>
        <briefdescription>
<para>Initialise a rho_CS with pointers to parameters. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Unassociated pointer to hold the control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">nk</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of layers in the grid</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ref_pressure</parametername>
</parameternamelist>
<parameterdescription>
<para>Coordinate reference pressure [R L2 T-2 ~&gt; Pa]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">target_density</parametername>
</parameternamelist>
<parameterdescription>
<para>Nominal density of interfaces [R ~&gt; kg m-3]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">interp_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Controls for interpolation </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" line="41" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" bodystart="42" bodyend="56"/>
        <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="namespacecoord__rho_1a8e9c666d47d847ab8b64a22c470931d1" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public coord_rho::end_coord_rho</definition>
        <argsstring>(CS)</argsstring>
        <name>end_coord_rho</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <briefdescription>
<para>This subroutine deallocates memory in the control structure for the <ref refid="namespacecoord__rho" kindref="compound">coord_rho</ref> module. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Coordinate control structure </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" line="60" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" bodystart="61" bodyend="66"/>
      </memberdef>
      <memberdef kind="function" id="namespacecoord__rho_1a6b2a48523247f59c7b4b5b7941334c25" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public coord_rho::set_rho_params</definition>
        <argsstring>(CS, min_thickness, integrate_downward_for_e, interp_CS)</argsstring>
        <name>set_rho_params</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>min_thickness</type>
          <defname>min_thickness</defname>
        </param>
        <param>
          <type>integrate_downward_for_e</type>
          <defname>integrate_downward_for_e</defname>
        </param>
        <param>
          <type>interp_CS</type>
          <defname>interp_CS</defname>
        </param>
        <briefdescription>
<para>This subroutine can be used to set the parameters for the <ref refid="namespacecoord__rho" kindref="compound">coord_rho</ref> module. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Coordinate control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">min_thickness</parametername>
</parameternamelist>
<parameterdescription>
<para>Minimum allowed thickness [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">integrate_downward_for_e</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, integrate for interface positions from the top downward. If false, integrate from the bottom upward, as does the rest of the model.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">interp_cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Controls for interpolation </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" line="70" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" bodystart="71" bodyend="83"/>
        <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="namespacecoord__rho_1ac3f19bfa0e6b622cdf045c348ec4d183" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public coord_rho::build_rho_column</definition>
        <argsstring>(CS, nz, depth, h, T, S, eqn_of_state, z_interface, h_neglect, h_neglect_edge)</argsstring>
        <name>build_rho_column</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>nz</type>
          <defname>nz</defname>
        </param>
        <param>
          <type>depth</type>
          <defname>depth</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>z_interface</type>
          <defname>z_interface</defname>
        </param>
        <param>
          <type>h_neglect</type>
          <defname>h_neglect</defname>
        </param>
        <param>
          <type>h_neglect_edge</type>
          <defname>h_neglect_edge</defname>
        </param>
        <briefdescription>
<para>Build a rho coordinate column. </para>        </briefdescription>
        <detaileddescription>
<para><orderedlist>
<listitem><para>Density profiles are calculated on the source grid.</para></listitem><listitem><para>Positions of target densities (for interfaces) are found by interpolation.</para></listitem></orderedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cs</parametername>
</parameternamelist>
<parameterdescription>
<para><ref refid="namespacecoord__rho" kindref="compound">coord_rho</ref> control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">nz</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of levels on source grid (i.e. length of h, T, S)</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">depth</parametername>
</parameternamelist>
<parameterdescription>
<para>Depth of ocean bottom (positive downward) [H ~&gt; m or kg m-2]</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">t</parametername>
</parameternamelist>
<parameterdescription>
<para>Temperature for source column [degC]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">s</parametername>
</parameternamelist>
<parameterdescription>
<para>Salinity for source column [ppt]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>eqn_of_state</parametername>
</parameternamelist>
<parameterdescription>
<para>Equation of state structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">z_interface</parametername>
</parameternamelist>
<parameterdescription>
<para>Absolute positions of interfaces</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_neglect</parametername>
</parameternamelist>
<parameterdescription>
<para>A negligibly small width for the purpose of cell reconstructions [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_neglect_edge</parametername>
</parameternamelist>
<parameterdescription>
<para>A negligibly small width for the purpose of edge value calculations [H ~&gt; m or kg m-2] </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" line="90" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" bodystart="92" bodyend="169"/>
        <references refid="namespaceregrid__interp_1abaef8cc7e1258b61710adbd6fb742122" compoundref="regrid__interp_8F90" startline="309" endline="333">regrid_interp::build_and_interpolate_grid</references>
        <references refid="namespacecoord__rho_1a17064808dccea1f725fe82cd49cd2541" compoundref="coord__rho_8F90" startline="313" endline="353">copy_finite_thicknesses</references>
        <references refid="namespacecoord__rho_1afbc86f29df8e39eb793d12075d018518" compoundref="coord__rho_8F90" startline="359" endline="413">old_inflate_layers_1d</references>
        <referencedby refid="namespacemom__diag__remap_1aaa0a887dc724438845e88598d439b20a" compoundref="MOM__diag__remap_8F90" startline="276" endline="346">mom_diag_remap::diag_remap_update</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacecoord__rho_1ad79c2a471c8de0b16f0478813be7c29f" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine coord_rho::build_rho_column_iteratively</definition>
        <argsstring>(CS, remapCS, nz, depth, h, T, S, eqn_of_state, zInterface, h_neglect, h_neglect_edge, dev_tol)</argsstring>
        <name>build_rho_column_iteratively</name>
        <param>
          <type>CS</type>
          <defname>CS</defname>
        </param>
        <param>
          <type>remapCS</type>
          <defname>remapCS</defname>
        </param>
        <param>
          <type>nz</type>
          <defname>nz</defname>
        </param>
        <param>
          <type>depth</type>
          <defname>depth</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>zInterface</type>
          <defname>zInterface</defname>
        </param>
        <param>
          <type>h_neglect</type>
          <defname>h_neglect</defname>
        </param>
        <param>
          <type>h_neglect_edge</type>
          <defname>h_neglect_edge</defname>
        </param>
        <param>
          <type>dev_tol</type>
          <defname>dev_tol</defname>
        </param>
        <briefdescription>
<para>Iteratively build a rho coordinate column. </para>        </briefdescription>
        <detaileddescription>
<para>The algorithm operates as follows within each column:</para><para><orderedlist>
<listitem><para>Given T &amp; S within each layer, the layer densities are computed.</para></listitem><listitem><para>Based on these layer densities, a global density profile is reconstructed (this profile is monotonically increasing and may be discontinuous)</para></listitem><listitem><para>The new grid interfaces are determined based on the target interface densities.</para></listitem><listitem><para>T &amp; S are remapped onto the new grid.</para></listitem><listitem><para>Return to step 1 until convergence or until the maximum number of iterations is reached, whichever comes first.</para></listitem></orderedlist>
</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">cs</parametername>
</parameternamelist>
<parameterdescription>
<para>Regridding control structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">remapcs</parametername>
</parameternamelist>
<parameterdescription>
<para>Remapping parameters and options</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">nz</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of levels</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">depth</parametername>
</parameternamelist>
<parameterdescription>
<para>Depth of ocean bottom [Z ~&gt; m]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thicknesses in Z coordinates [Z ~&gt; m]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">t</parametername>
</parameternamelist>
<parameterdescription>
<para>T for column [degC]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">s</parametername>
</parameternamelist>
<parameterdescription>
<para>S for column [ppt]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>eqn_of_state</parametername>
</parameternamelist>
<parameterdescription>
<para>Equation of state structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">zinterface</parametername>
</parameternamelist>
<parameterdescription>
<para>Absolute positions of interfaces</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_neglect</parametername>
</parameternamelist>
<parameterdescription>
<para>A negligibly small width for the purpose of cell reconstructions in the same units as h [Z ~&gt; m]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_neglect_edge</parametername>
</parameternamelist>
<parameterdescription>
<para>A negligibly small width for the purpose of edge value calculations in the same units as h [Z ~&gt; m]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">dev_tol</parametername>
</parameternamelist>
<parameterdescription>
<para>The tolerance for the deviation between successive grids for determining when the iterative solver has converged [Z ~&gt; m] </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" line="186" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" bodystart="188" bodyend="308"/>
        <references refid="namespaceregrid__interp_1abaef8cc7e1258b61710adbd6fb742122" compoundref="regrid__interp_8F90" startline="309" endline="333">regrid_interp::build_and_interpolate_grid</references>
        <references refid="namespacecoord__rho_1a17064808dccea1f725fe82cd49cd2541" compoundref="coord__rho_8F90" startline="313" endline="353">copy_finite_thicknesses</references>
        <references refid="namespacecoord__rho_1afbc86f29df8e39eb793d12075d018518" compoundref="coord__rho_8F90" startline="359" endline="413">old_inflate_layers_1d</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="namespacecoord__rho_1a17064808dccea1f725fe82cd49cd2541" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine coord_rho::copy_finite_thicknesses</definition>
        <argsstring>(nk, h_in, thresh, nout, h_out, mapping)</argsstring>
        <name>copy_finite_thicknesses</name>
        <param>
          <type>nk</type>
          <defname>nk</defname>
        </param>
        <param>
          <type>h_in</type>
          <defname>h_in</defname>
        </param>
        <param>
          <type>thresh</type>
          <defname>thresh</defname>
        </param>
        <param>
          <type>nout</type>
          <defname>nout</defname>
        </param>
        <param>
          <type>h_out</type>
          <defname>h_out</defname>
        </param>
        <param>
          <type>mapping</type>
          <defname>mapping</defname>
        </param>
        <briefdescription>
<para>Copy column thicknesses with vanished layers removed. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">nk</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of layer for h_in, T_in, S_in</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">h_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Thickness of input column [H ~&gt; m or kg m-2] or [Z ~&gt; m]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">thresh</parametername>
</parameternamelist>
<parameterdescription>
<para>Thickness threshold defining vanished layers [H ~&gt; m or kg m-2] or [Z ~&gt; m]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">nout</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of non-vanished layers</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">h_out</parametername>
</parameternamelist>
<parameterdescription>
<para>Thickness of output column [H ~&gt; m or kg m-2] or [Z ~&gt; m]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">mapping</parametername>
</parameternamelist>
<parameterdescription>
<para>Index of k-out corresponding to k-in </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" line="312" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" bodystart="313" bodyend="353"/>
        <referencedby refid="namespacecoord__rho_1ac3f19bfa0e6b622cdf045c348ec4d183" compoundref="coord__rho_8F90" startline="92" endline="169">build_rho_column</referencedby>
        <referencedby refid="namespacecoord__rho_1ad79c2a471c8de0b16f0478813be7c29f" compoundref="coord__rho_8F90" startline="188" endline="308">build_rho_column_iteratively</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacecoord__rho_1afbc86f29df8e39eb793d12075d018518" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public coord_rho::old_inflate_layers_1d</definition>
        <argsstring>(min_thickness, nk, h)</argsstring>
        <name>old_inflate_layers_1d</name>
        <param>
          <type>min_thickness</type>
          <defname>min_thickness</defname>
        </param>
        <param>
          <type>nk</type>
          <defname>nk</defname>
        </param>
        <param>
          <type>h</type>
          <defname>h</defname>
        </param>
        <briefdescription>
<para>Inflate vanished layers to finite (nonzero) width. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">min_thickness</parametername>
</parameternamelist>
<parameterdescription>
<para>Minimum allowed thickness [H ~&gt; m or kg m-2]</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">nk</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of layers in the grid</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">h</parametername>
</parameternamelist>
<parameterdescription>
<para>Layer thicknesses [H ~&gt; m or kg m-2] </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" line="358" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" bodystart="359" bodyend="413"/>
        <referencedby refid="namespacecoord__rho_1ac3f19bfa0e6b622cdf045c348ec4d183" compoundref="coord__rho_8F90" startline="92" endline="169">build_rho_column</referencedby>
        <referencedby refid="namespacecoord__rho_1ad79c2a471c8de0b16f0478813be7c29f" compoundref="coord__rho_8F90" startline="188" endline="308">build_rho_column_iteratively</referencedby>
        <referencedby refid="namespacemom__regridding_1aeb36a31003c4887ea1af82c11c627f2f" compoundref="MOM__regridding_8F90" startline="1829" endline="1864">mom_regridding::inflate_vanished_layers_old</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Regrid columns for the continuous isopycnal (rho) coordinate. </para>    </briefdescription>
    <detaileddescription>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/ALE/coord_rho.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
