<?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__grid__initialize" kind="namespace" language="Fortran">
    <compoundname>mom_grid_initialize</compoundname>
    <innerclass refid="structmom__grid__initialize_1_1gps" prot="public">mom_grid_initialize::gps</innerclass>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__grid__initialize_1a80ff9ab4bfca58b9858abc4ce95b06e9" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_grid_initialize::set_grid_metrics</definition>
        <argsstring>(G, param_file, US)</argsstring>
        <name>set_grid_metrics</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <briefdescription>
<para>set_grid_metrics is used to set the primary values in the model&apos;s horizontal grid. The bathymetry, land-sea mask and any restricted channel widths are not known yet, so these are set later. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The dynamic horizontal grid type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>Parameter file structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="62" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="63" bodyend="108"/>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</references>
        <references refid="namespacemom__grid__initialize_1acdb2092abe8112d381c54c2aec398c6d" compoundref="MOM__grid__initialize_8F90" startline="116" endline="161">grid_metrics_chksum</references>
        <references refid="namespacemom__dyn__horgrid_1a26c1389a380922c7c5d946cff3a9b11a" compoundref="MOM__dyn__horgrid_8F90" startline="317" endline="363">mom_dyn_horgrid::set_derived_dyn_horgrid</references>
        <references refid="namespacemom__grid__initialize_1a0b05a77813a4ca80172f3855e688d19f" compoundref="MOM__grid__initialize_8F90" startline="420" endline="545">set_grid_metrics_cartesian</references>
        <references refid="namespacemom__grid__initialize_1a93edcd084a84a50c6aef6053a2cc64f3" compoundref="MOM__grid__initialize_8F90" startline="168" endline="406">set_grid_metrics_from_mosaic</references>
        <references refid="namespacemom__grid__initialize_1a3cc0b92a8624fbd5246576b4e5cf6f6f" compoundref="MOM__grid__initialize_8F90" startline="697" endline="922">set_grid_metrics_mercator</references>
        <references refid="namespacemom__grid__initialize_1a7c37b75811701cbca250a34359e44a4a" compoundref="MOM__grid__initialize_8F90" startline="558" endline="686">set_grid_metrics_spherical</references>
        <referencedby refid="namespacemom__oda__driver__mod_1aaaf67b8d0e0db3ba3dfe09e24d2b8b24" compoundref="MOM__oda__driver_8F90" startline="115" endline="303">mom_oda_driver_mod::init_oda</referencedby>
        <referencedby refid="namespacemom__ice__shelf_1a5990f9918493ff4984245eac74e5f4d9" compoundref="MOM__ice__shelf_8F90" startline="1084" endline="1638">mom_ice_shelf::initialize_ice_shelf</referencedby>
        <referencedby refid="namespacemom__fixed__initialization_1a79fad1bd49f85eaa0579def2d9d4ae53" compoundref="MOM__fixed__initialization_8F90" startline="57" endline="169">mom_fixed_initialization::mom_initialize_fixed</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1acdb2092abe8112d381c54c2aec398c6d" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_grid_initialize::grid_metrics_chksum</definition>
        <argsstring>(parent, G, US)</argsstring>
        <name>grid_metrics_chksum</name>
        <param>
          <type>parent</type>
          <defname>parent</defname>
        </param>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <briefdescription>
<para>grid_metrics_chksum performs a set of checksums on metrics on the grid for debugging. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">parent</parametername>
</parameternamelist>
<parameterdescription>
<para>A string identifying the caller</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The dynamic horizontal grid type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="115" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="116" bodyend="161"/>
        <referencedby refid="namespacemom__grid__initialize_1a80ff9ab4bfca58b9858abc4ce95b06e9" compoundref="MOM__grid__initialize_8F90" startline="63" endline="108">set_grid_metrics</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1a93edcd084a84a50c6aef6053a2cc64f3" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_grid_initialize::set_grid_metrics_from_mosaic</definition>
        <argsstring>(G, param_file, US)</argsstring>
        <name>set_grid_metrics_from_mosaic</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <briefdescription>
<para>Sets the grid metrics from a mosaic file. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The dynamic horizontal grid type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>Parameter file structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="167" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="168" bodyend="406"/>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</references>
        <references refid="namespacemom__grid__initialize_1ac78daa312636b0ef9a93694901b5c705" compoundref="MOM__grid__initialize_8F90" startline="1187" endline="1215">extrapolate_metric</references>
        <referencedby refid="namespacemom__grid__initialize_1a80ff9ab4bfca58b9858abc4ce95b06e9" compoundref="MOM__grid__initialize_8F90" startline="63" endline="108">set_grid_metrics</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1a0b05a77813a4ca80172f3855e688d19f" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_grid_initialize::set_grid_metrics_cartesian</definition>
        <argsstring>(G, param_file, US)</argsstring>
        <name>set_grid_metrics_cartesian</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <briefdescription>
<para>Calculate the values of the metric terms for a Cartesian grid that might be used and save them in arrays. </para>        </briefdescription>
        <detaileddescription>
<para>Within this subroutine, the x- and y- grid spacings and their inverses and the cell areas centered on h, q, u, and v points are calculated, as are the geographic locations of each of these 4 sets of points.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The dynamic horizontal grid type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>Parameter file structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="419" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="420" bodyend="545"/>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</references>
        <referencedby refid="namespacemom__grid__initialize_1a80ff9ab4bfca58b9858abc4ce95b06e9" compoundref="MOM__grid__initialize_8F90" startline="63" endline="108">set_grid_metrics</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1a7c37b75811701cbca250a34359e44a4a" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_grid_initialize::set_grid_metrics_spherical</definition>
        <argsstring>(G, param_file, US)</argsstring>
        <name>set_grid_metrics_spherical</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <briefdescription>
<para>Calculate the values of the metric terms that might be used and save them in arrays. </para>        </briefdescription>
        <detaileddescription>
<para>Within this subroutine, the x- and y- grid spacings and their inverses and the cell areas centered on h, q, u, and v points are calculated, as are the geographic locations of each of these 4 sets of points.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The dynamic horizontal grid type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>Parameter file structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="557" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="558" bodyend="686"/>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</references>
        <referencedby refid="namespacemom__grid__initialize_1a80ff9ab4bfca58b9858abc4ce95b06e9" compoundref="MOM__grid__initialize_8F90" startline="63" endline="108">set_grid_metrics</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1a3cc0b92a8624fbd5246576b4e5cf6f6f" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_grid_initialize::set_grid_metrics_mercator</definition>
        <argsstring>(G, param_file, US)</argsstring>
        <name>set_grid_metrics_mercator</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <briefdescription>
<para>Calculate the values of the metric terms that might be used and save them in arrays. </para>        </briefdescription>
        <detaileddescription>
<para>Within this subroutine, the x- and y- grid spacings and their inverses and the cell areas centered on h, q, u, and v points are calculated, as are the geographic locations of each of these 4 sets of points.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The dynamic horizontal grid type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>Parameter file structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="696" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="697" bodyend="922"/>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</references>
        <references refid="namespacemom__grid__initialize_1aac9e8e21e95ba01e853569e3060ee8d3" compoundref="MOM__grid__initialize_8F90" startline="958" endline="974">dl</references>
        <references refid="namespacemom__grid__initialize_1a5a50815c6d1d0948dfbae076da654b94" compoundref="MOM__grid__initialize_8F90" startline="928" endline="937">ds_di</references>
        <references refid="namespacemom__grid__initialize_1aaa3a376606d5067107c3a43beb6f8032" compoundref="MOM__grid__initialize_8F90" startline="942" endline="951">ds_dj</references>
        <references refid="namespacemom__grid__initialize_1afa76ec84052508b78fde53cd6ed70161" compoundref="MOM__grid__initialize_8F90" startline="1093" endline="1098">dx_di</references>
        <references refid="namespacemom__grid__initialize_1aff493c70cca560bfefcdbfabdf778656" compoundref="MOM__grid__initialize_8F90" startline="1115" endline="1138">dy_dj</references>
        <references refid="namespacemom__grid__initialize_1a25cb0001f061ef10b90e637f98ed9fcc" compoundref="MOM__grid__initialize_8F90" startline="981" endline="1087">find_root</references>
        <references refid="namespacemom__grid__initialize_1aee53e3cf4937fa86949aa376d5f3d82a" compoundref="MOM__grid__initialize_8F90" startline="1104" endline="1109">int_di_dx</references>
        <references refid="namespacemom__grid__initialize_1a8ed056787130f21f4b9c1bc81bd60c50" compoundref="MOM__grid__initialize_8F90" startline="1144" endline="1182">int_dj_dy</references>
        <referencedby refid="namespacemom__grid__initialize_1a80ff9ab4bfca58b9858abc4ce95b06e9" compoundref="MOM__grid__initialize_8F90" startline="63" endline="108">set_grid_metrics</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1a5a50815c6d1d0948dfbae076da654b94" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function</type>
        <definition>real function mom_grid_initialize::ds_di</definition>
        <argsstring>(x, y, GP)</argsstring>
        <name>ds_di</name>
        <param>
          <type>x</type>
          <defname>x</defname>
        </param>
        <param>
          <type>y</type>
          <defname>y</defname>
        </param>
        <param>
          <type>GP</type>
          <defname>GP</defname>
        </param>
        <briefdescription>
<para>This function returns the grid spacing in the logical x direction. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">x</parametername>
</parameternamelist>
<parameterdescription>
<para>The longitude in question</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">y</parametername>
</parameternamelist>
<parameterdescription>
<para>The latitude in question</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gp</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure of grid parameters </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="927" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="928" bodyend="937"/>
        <references refid="namespacemom__grid__initialize_1afa76ec84052508b78fde53cd6ed70161" compoundref="MOM__grid__initialize_8F90" startline="1093" endline="1098">dx_di</references>
        <referencedby refid="namespacemom__grid__initialize_1a3cc0b92a8624fbd5246576b4e5cf6f6f" compoundref="MOM__grid__initialize_8F90" startline="697" endline="922">set_grid_metrics_mercator</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1aaa3a376606d5067107c3a43beb6f8032" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function</type>
        <definition>real function mom_grid_initialize::ds_dj</definition>
        <argsstring>(x, y, GP)</argsstring>
        <name>ds_dj</name>
        <param>
          <type>x</type>
          <defname>x</defname>
        </param>
        <param>
          <type>y</type>
          <defname>y</defname>
        </param>
        <param>
          <type>GP</type>
          <defname>GP</defname>
        </param>
        <briefdescription>
<para>This function returns the grid spacing in the logical y direction. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">x</parametername>
</parameternamelist>
<parameterdescription>
<para>The longitude in question</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">y</parametername>
</parameternamelist>
<parameterdescription>
<para>The latitude in question</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gp</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure of grid parameters </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="941" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="942" bodyend="951"/>
        <references refid="namespacemom__grid__initialize_1aff493c70cca560bfefcdbfabdf778656" compoundref="MOM__grid__initialize_8F90" startline="1115" endline="1138">dy_dj</references>
        <referencedby refid="namespacemom__grid__initialize_1a3cc0b92a8624fbd5246576b4e5cf6f6f" compoundref="MOM__grid__initialize_8F90" startline="697" endline="922">set_grid_metrics_mercator</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1aac9e8e21e95ba01e853569e3060ee8d3" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function</type>
        <definition>real function mom_grid_initialize::dl</definition>
        <argsstring>(x1, x2, y1, y2)</argsstring>
        <name>dl</name>
        <param>
          <type>x1</type>
          <defname>x1</defname>
        </param>
        <param>
          <type>x2</type>
          <defname>x2</defname>
        </param>
        <param>
          <type>y1</type>
          <defname>y1</defname>
        </param>
        <param>
          <type>y2</type>
          <defname>y2</defname>
        </param>
        <briefdescription>
<para>This function returns the contribution from the line integral along one of the four sides of a cell face to the area of a cell, assuming that the sides follow a linear path in latitude and longitude (i.e., on a Mercator grid). </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">x1</parametername>
</parameternamelist>
<parameterdescription>
<para>Segment starting longitude, in degrees E.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">x2</parametername>
</parameternamelist>
<parameterdescription>
<para>Segment ending longitude, in degrees E.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">y1</parametername>
</parameternamelist>
<parameterdescription>
<para>Segment ending latitude, in degrees N.</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">y2</parametername>
</parameternamelist>
<parameterdescription>
<para>Segment ending latitude, in degrees N. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="957" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="958" bodyend="974"/>
        <referencedby refid="namespacemom__grid__initialize_1a3cc0b92a8624fbd5246576b4e5cf6f6f" compoundref="MOM__grid__initialize_8F90" startline="697" endline="922">set_grid_metrics_mercator</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1a25cb0001f061ef10b90e637f98ed9fcc" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function</type>
        <definition>real function mom_grid_initialize::find_root</definition>
        <argsstring>(fn, dy_df, GP, fnval, y1, ymin, ymax, ittmax)</argsstring>
        <name>find_root</name>
        <param>
          <type>fn</type>
          <defname>fn</defname>
        </param>
        <param>
          <type>dy_df</type>
          <defname>dy_df</defname>
        </param>
        <param>
          <type>GP</type>
          <defname>GP</defname>
        </param>
        <param>
          <type>fnval</type>
          <defname>fnval</defname>
        </param>
        <param>
          <type>y1</type>
          <defname>y1</defname>
        </param>
        <param>
          <type>ymin</type>
          <defname>ymin</defname>
        </param>
        <param>
          <type>ymax</type>
          <defname>ymax</defname>
        </param>
        <param>
          <type>ittmax</type>
          <defname>ittmax</defname>
        </param>
        <briefdescription>
<para>This subroutine finds and returns the value of y at which the monotonically increasing function fn takes the value fnval, also returning in ittmax the number of iterations of Newton&apos;s method that were used to polish the root. </para>        </briefdescription>
        <detaileddescription>
<para><simplesect kind="return"><para>The value of y where fn(y) = fnval that will be returned</para></simplesect>
<parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername>fn</parametername>
</parameternamelist>
<parameterdescription>
<para>The external function whose root is being sought</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername>dy_df</parametername>
</parameternamelist>
<parameterdescription>
<para>The inverse of the derivative of that function</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gp</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure of grid parameters</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">fnval</parametername>
</parameternamelist>
<parameterdescription>
<para>The value of fn being sought</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">y1</parametername>
</parameternamelist>
<parameterdescription>
<para>A first guess for y</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ymin</parametername>
</parameternamelist>
<parameterdescription>
<para>The minimum permitted value of y</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">ymax</parametername>
</parameternamelist>
<parameterdescription>
<para>The maximum permitted value of y</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">ittmax</parametername>
</parameternamelist>
<parameterdescription>
<para>The number of iterations used to polish the root </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="980" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="981" bodyend="1087"/>
        <referencedby refid="namespacemom__grid__initialize_1a3cc0b92a8624fbd5246576b4e5cf6f6f" compoundref="MOM__grid__initialize_8F90" startline="697" endline="922">set_grid_metrics_mercator</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1afa76ec84052508b78fde53cd6ed70161" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function</type>
        <definition>real function mom_grid_initialize::dx_di</definition>
        <argsstring>(x, GP)</argsstring>
        <name>dx_di</name>
        <param>
          <type>x</type>
          <defname>x</defname>
        </param>
        <param>
          <type>GP</type>
          <defname>GP</defname>
        </param>
        <briefdescription>
<para>This function calculates and returns the value of dx/di, where x is the longitude in Radians, and i is the integral north-south grid index. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">x</parametername>
</parameternamelist>
<parameterdescription>
<para>The longitude in question</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gp</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure of grid parameters </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="1092" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="1093" bodyend="1098"/>
        <referencedby refid="namespacemom__grid__initialize_1a5a50815c6d1d0948dfbae076da654b94" compoundref="MOM__grid__initialize_8F90" startline="928" endline="937">ds_di</referencedby>
        <referencedby refid="namespacemom__grid__initialize_1a3cc0b92a8624fbd5246576b4e5cf6f6f" compoundref="MOM__grid__initialize_8F90" startline="697" endline="922">set_grid_metrics_mercator</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1aee53e3cf4937fa86949aa376d5f3d82a" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function</type>
        <definition>real function mom_grid_initialize::int_di_dx</definition>
        <argsstring>(x, GP)</argsstring>
        <name>int_di_dx</name>
        <param>
          <type>x</type>
          <defname>x</defname>
        </param>
        <param>
          <type>GP</type>
          <defname>GP</defname>
        </param>
        <briefdescription>
<para>This function calculates and returns the integral of the inverse of dx/di to the point x, in radians. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">x</parametername>
</parameternamelist>
<parameterdescription>
<para>The longitude in question</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gp</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure of grid parameters </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="1103" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="1104" bodyend="1109"/>
        <referencedby refid="namespacemom__grid__initialize_1a3cc0b92a8624fbd5246576b4e5cf6f6f" compoundref="MOM__grid__initialize_8F90" startline="697" endline="922">set_grid_metrics_mercator</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1aff493c70cca560bfefcdbfabdf778656" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function</type>
        <definition>real function mom_grid_initialize::dy_dj</definition>
        <argsstring>(y, GP)</argsstring>
        <name>dy_dj</name>
        <param>
          <type>y</type>
          <defname>y</defname>
        </param>
        <param>
          <type>GP</type>
          <defname>GP</defname>
        </param>
        <briefdescription>
<para>This subroutine calculates and returns the value of dy/dj, where y is the latitude in Radians, and j is the integral north-south grid index. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">y</parametername>
</parameternamelist>
<parameterdescription>
<para>The latitude in question</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gp</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure of grid parameters </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="1114" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="1115" bodyend="1138"/>
        <referencedby refid="namespacemom__grid__initialize_1aaa3a376606d5067107c3a43beb6f8032" compoundref="MOM__grid__initialize_8F90" startline="942" endline="951">ds_dj</referencedby>
        <referencedby refid="namespacemom__grid__initialize_1a3cc0b92a8624fbd5246576b4e5cf6f6f" compoundref="MOM__grid__initialize_8F90" startline="697" endline="922">set_grid_metrics_mercator</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1a8ed056787130f21f4b9c1bc81bd60c50" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function</type>
        <definition>real function mom_grid_initialize::int_dj_dy</definition>
        <argsstring>(y, GP)</argsstring>
        <name>int_dj_dy</name>
        <param>
          <type>y</type>
          <defname>y</defname>
        </param>
        <param>
          <type>GP</type>
          <defname>GP</defname>
        </param>
        <briefdescription>
<para>This subroutine calculates and returns the integral of the inverse of dy/dj to the point y, in radians. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">y</parametername>
</parameternamelist>
<parameterdescription>
<para>The latitude in question</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">gp</parametername>
</parameternamelist>
<parameterdescription>
<para>A structure of grid parameters </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="1143" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="1144" bodyend="1182"/>
        <referencedby refid="namespacemom__grid__initialize_1a3cc0b92a8624fbd5246576b4e5cf6f6f" compoundref="MOM__grid__initialize_8F90" startline="697" endline="922">set_grid_metrics_mercator</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1ac78daa312636b0ef9a93694901b5c705" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_grid_initialize::extrapolate_metric</definition>
        <argsstring>(var, jh, missing)</argsstring>
        <name>extrapolate_metric</name>
        <param>
          <type>var</type>
          <defname>var</defname>
        </param>
        <param>
          <type>jh</type>
          <defname>jh</defname>
        </param>
        <param>
          <type>missing</type>
          <defname>missing</defname>
        </param>
        <briefdescription>
<para>Extrapolates missing metric data into all the halo regions. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">var</parametername>
</parameternamelist>
<parameterdescription>
<para>The array in which to fill in halos</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">jh</parametername>
</parameternamelist>
<parameterdescription>
<para>The size of the halos to be filled</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">missing</parametername>
</parameternamelist>
<parameterdescription>
<para>The missing data fill value, 0 by default. </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="1186" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="1187" bodyend="1215"/>
        <referencedby refid="namespacemom__grid__initialize_1a93edcd084a84a50c6aef6053a2cc64f3" compoundref="MOM__grid__initialize_8F90" startline="168" endline="406">set_grid_metrics_from_mosaic</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1ac5445d58b86d259f4c352255849d7fe0" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>real function, public</type>
        <definition>real function, public mom_grid_initialize::adcroft_reciprocal</definition>
        <argsstring>(val)</argsstring>
        <name>adcroft_reciprocal</name>
        <param>
          <type>val</type>
          <defname>val</defname>
        </param>
        <briefdescription>
<para>This function implements Adcroft&apos;s rule for reciprocals, namely that Adcroft_Inv(x) = 1/x for |x|&gt;0 or 0 for x=0. </para>        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">val</parametername>
</parameternamelist>
<parameterdescription>
<para>The value being inverted.</para></parameterdescription>
</parameteritem>
</parameterlist>
<simplesect kind="return"><para>The Adcroft reciprocal of val. </para></simplesect>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="1220" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="1221" bodyend="1225"/>
        <referencedby refid="namespacemom__grid__initialize_1a003da6e1301224ac3d211262b03ced3a" compoundref="MOM__grid__initialize_8F90" startline="1237" endline="1318">initialize_masks</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__grid__initialize_1a003da6e1301224ac3d211262b03ced3a" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_grid_initialize::initialize_masks</definition>
        <argsstring>(G, PF, US)</argsstring>
        <name>initialize_masks</name>
        <param>
          <type>G</type>
          <defname>G</defname>
        </param>
        <param>
          <type>PF</type>
          <defname>PF</defname>
        </param>
        <param>
          <type>US</type>
          <defname>US</defname>
        </param>
        <briefdescription>
<para>Initializes the grid masks and any metrics that come with masks already applied. </para>        </briefdescription>
        <detaileddescription>
<para>Initialize_masks sets mask2dT, mask2dCu, mask2dCv, and mask2dBu to mask out flow over any points which are shallower than Dmin and permit an appropriate treatment of the boundary conditions. mask2dCu and mask2dCv are 0.0 at any points adjacent to a land point. mask2dBu is 0.0 at any land or boundary point. For points in the interior, mask2dCu, mask2dCv, and mask2dBu are all 1.0.</para><para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="inout">g</parametername>
</parameternamelist>
<parameterdescription>
<para>The dynamic horizontal grid type</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">pf</parametername>
</parameternamelist>
<parameterdescription>
<para>Parameter file structure</para></parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">us</parametername>
</parameternamelist>
<parameterdescription>
<para>A dimensional unit scaling type </para></parameterdescription>
</parameteritem>
</parameterlist>
</para>        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="1236" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" bodystart="1237" bodyend="1318"/>
        <references refid="namespacemom__grid__initialize_1ac5445d58b86d259f4c352255849d7fe0" compoundref="MOM__grid__initialize_8F90" startline="1221" endline="1225">adcroft_reciprocal</references>
        <references refid="namespacemom__error__handler_1a9cda07a87815f0e5594066162b4345c3" compoundref="MOM__error__handler_8F90" startline="130" endline="146">mom_error_handler::calltree_enter</references>
        <references refid="namespacemom__error__handler_1a88ea67781e2ed9b73ab7eac8ea5e8578" compoundref="MOM__error__handler_8F90" startline="151" endline="156">mom_error_handler::calltree_leave</references>
        <referencedby refid="namespacemom__fixed__initialization_1a79fad1bd49f85eaa0579def2d9d4ae53" compoundref="MOM__fixed__initialization_8F90" startline="57" endline="169">mom_fixed_initialization::mom_initialize_fixed</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Initializes horizontal grid. </para>    </briefdescription>
    <detaileddescription>
<para>The metric terms have the form Dzp, IDzp, or DXDYp, where z can be X or Y, and p can be q, u, v, or h. z describes the direction of the metric, while p describes the location. IDzp is the inverse of Dzp, while DXDYp is the product of DXp and DYp except that areaT is calculated analytically from the latitudes and longitudes of the surrounding q points.</para><para>On a sphere, a variety of grids can be implemented by defining analytic expressions for dx_di, dy_dj (where x and y are latitude and longitude, and i and j are grid indices) and the expressions for the integrals of their inverses in the four subroutines dy_dj, Int_dj_dy, dx_di, and Int_di_dx.</para><para>initialize_masks sets up land masks based on the depth field. The one argument is the minimum ocean depth. Depths that are less than this are interpreted as land points. </para>    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/initialization/MOM_grid_initialize.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
