<?xml version='1.0' encoding='UTF-8' standalone='no'?>
<doxygen xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="compound.xsd" version="1.8.15">
  <compounddef id="namespacemom__hor__index" kind="namespace" language="Fortran">
    <compoundname>mom_hor_index</compoundname>
    <innerclass refid="interfacemom__hor__index_1_1assignment_07_0A_08" prot="public">mom_hor_index::assignment(=)</innerclass>
    <innerclass refid="structmom__hor__index_1_1hor__index__type" prot="public">mom_hor_index::hor_index_type</innerclass>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__hor__index_1a8e3912351dbf2be2659f3561de341f49" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_hor_index::hor_index_init</definition>
        <argsstring>(Domain, HI, param_file, local_indexing, index_offset)</argsstring>
        <name>hor_index_init</name>
        <param>
          <type>Domain</type>
          <defname>Domain</defname>
        </param>
        <param>
          <type>HI</type>
          <defname>HI</defname>
        </param>
        <param>
          <type>param_file</type>
          <defname>param_file</defname>
        </param>
        <param>
          <type>local_indexing</type>
          <defname>local_indexing</defname>
        </param>
        <param>
          <type>index_offset</type>
          <defname>index_offset</defname>
        </param>
        <briefdescription>
<para>Sets various index values in a <ref refid="structmom__hor__index_1_1hor__index__type" kindref="compound">hor_index_type</ref>. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">domain</parametername>
</parameternamelist>
<parameterdescription>
<para>The MOM domain from which to extract information. </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">hi</parametername>
</parameternamelist>
<parameterdescription>
<para>A horizontal index type to populate with data </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">param_file</parametername>
</parameternamelist>
<parameterdescription>
<para>Parameter file handle </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">local_indexing</parametername>
</parameternamelist>
<parameterdescription>
<para>If true, all tracer data domains start at 1 </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">index_offset</parametername>
</parameternamelist>
<parameterdescription>
<para>A fixed additional offset to all indices </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_hor_index.F90" line="63" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_hor_index.F90" bodystart="64" bodyend="98"/>
        <references refid="namespacemom__domains_1a1f1063ac5a049926d4ad00b43752aee6" compoundref="MOM__domains_8F90" startline="1815" endline="1867">mom_domains::get_domain_extent</references>
        <references refid="namespacemom__domains_1abc0b09896aa9f5b4c795f85c813aa59f" compoundref="MOM__domains_8F90" startline="1973" endline="1979">mom_domains::get_global_shape</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__grid_1a1de9705f83b687ad9a711630a95fe52c" compoundref="MOM__grid_8F90" startline="184" endline="382">mom_grid::mom_grid_init</referencedby>
      </memberdef>
      <memberdef kind="function" id="namespacemom__hor__index_1a841e01011bd7ebb418e891dad39f0fcc" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_hor_index::hit_assign</definition>
        <argsstring>(HI1, HI2)</argsstring>
        <name>hit_assign</name>
        <param>
          <type>HI1</type>
          <defname>HI1</defname>
        </param>
        <param>
          <type>HI2</type>
          <defname>HI2</defname>
        </param>
        <briefdescription>
<para>HIT_assign copies one <ref refid="structmom__hor__index_1_1hor__index__type" kindref="compound">hor_index_type</ref> into another. It is accessed via an assignment (=) operator. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="out">hi1</parametername>
</parameternamelist>
<parameterdescription>
<para>Horizontal index type to copy to </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">hi2</parametername>
</parameternamelist>
<parameterdescription>
<para>Horizontal index type to copy from </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_hor_index.F90" line="103" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_hor_index.F90" bodystart="104" bodyend="120"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__hor__index_1a36e9e0a5f546003867db38ae1edbc4fc" prot="public" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine, public</type>
        <definition>subroutine, public mom_hor_index::rotate_hor_index</definition>
        <argsstring>(HI_in, turns, HI)</argsstring>
        <name>rotate_hor_index</name>
        <param>
          <type>HI_in</type>
          <defname>HI_in</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>HI</type>
          <defname>HI</defname>
        </param>
        <briefdescription>
<para>Rotate the horizontal index ranges from the input to the output map. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">hi_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Unrotated horizontal indices </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">turns</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of quarter turns </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="inout">hi</parametername>
</parameternamelist>
<parameterdescription>
<para>Rotated horizontal indices </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_hor_index.F90" line="124" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_hor_index.F90" bodystart="125" bodyend="165"/>
        <referencedby refid="namespacemom__checksums_1af3ee2725096bea4d0e532b02bd7a5983" compoundref="MOM__checksums_8F90" startline="570" endline="731">mom_checksums::chksum_b_2d</referencedby>
        <referencedby refid="namespacemom__checksums_1a7eda888fdc2e22a7367662d76cbc193d" compoundref="MOM__checksums_8F90" startline="1354" endline="1520">mom_checksums::chksum_b_3d</referencedby>
        <referencedby refid="namespacemom__checksums_1a49992903b4b92e03a5933426154c4641" compoundref="MOM__checksums_8F90" startline="306" endline="447">mom_checksums::chksum_h_2d</referencedby>
        <referencedby refid="namespacemom__checksums_1a20f9718e4e53fb5584f8b1dc51dacf20" compoundref="MOM__checksums_8F90" startline="1204" endline="1348">mom_checksums::chksum_h_3d</referencedby>
        <referencedby refid="namespacemom__checksums_1ac9d0ad082dc1fcf821f830f3274ea78b" compoundref="MOM__checksums_8F90" startline="453" endline="507">mom_checksums::chksum_pair_b_2d</referencedby>
        <referencedby refid="namespacemom__checksums_1af9f0a6d824a0203c4ce861086cfc6435" compoundref="MOM__checksums_8F90" startline="513" endline="564">mom_checksums::chksum_pair_b_3d</referencedby>
        <referencedby refid="namespacemom__checksums_1adf321aa5891602668005529a30f28225" compoundref="MOM__checksums_8F90" startline="202" endline="247">mom_checksums::chksum_pair_h_2d</referencedby>
        <referencedby refid="namespacemom__checksums_1a5a74e7e80a1bb2b733459c5d7a5e3ea8" compoundref="MOM__checksums_8F90" startline="253" endline="301">mom_checksums::chksum_pair_h_3d</referencedby>
        <referencedby refid="namespacemom__checksums_1a490f31f536667d60912db5e96218563c" compoundref="MOM__checksums_8F90" startline="847" endline="1020">mom_checksums::chksum_u_2d</referencedby>
        <referencedby refid="namespacemom__checksums_1a5127df73a7ac181d76b8c9fc6eb55c55" compoundref="MOM__checksums_8F90" startline="1526" endline="1699">mom_checksums::chksum_u_3d</referencedby>
        <referencedby refid="namespacemom__checksums_1a44f58e610aea8ed395c0fed97f020503" compoundref="MOM__checksums_8F90" startline="737" endline="786">mom_checksums::chksum_uv_2d</referencedby>
        <referencedby refid="namespacemom__checksums_1a316b025360732d72fc38a021b4fe0f7d" compoundref="MOM__checksums_8F90" startline="792" endline="841">mom_checksums::chksum_uv_3d</referencedby>
        <referencedby refid="namespacemom__checksums_1acc62cfde3303da03f62e86d98c124fc9" compoundref="MOM__checksums_8F90" startline="1026" endline="1199">mom_checksums::chksum_v_2d</referencedby>
        <referencedby refid="namespacemom__checksums_1add98802882151a1a03a70e6b6b7ae456" compoundref="MOM__checksums_8F90" startline="1705" endline="1879">mom_checksums::chksum_v_3d</referencedby>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Defines the horizontal index type (<ref refid="structmom__hor__index_1_1hor__index__type" kindref="compound">hor_index_type</ref>) used for providing index ranges. </para>
    </briefdescription>
    <detaileddescription>
<para>The <ref refid="structmom__hor__index_1_1hor__index__type" kindref="compound">hor_index_type</ref> provides the declarations and loop ranges for almost all data with horizontal extent.</para>
<para>Declarations and loop ranges should always be coded with the symmetric memory model in mind. The non-symmetric memory mode will then also work, albeit with a different (less efficient) communication pattern.</para>
<para>Using the <ref refid="structmom__hor__index_1_1hor__index__type" kindref="compound">hor_index_type</ref> HI:<itemizedlist>
<listitem><para>declaration of h-point data is of the form <computeroutput>h(HI%isd:HI%ied,HI%jsd:HI%jed)</computeroutput></para>
</listitem><listitem><para>declaration of q-point data is of the form <computeroutput>q(HI%IsdB:HI%IedB,HI%JsdB:HI%JedB)</computeroutput></para>
</listitem><listitem><para>declaration of u-point data is of the form <computeroutput>u(HI%IsdB:HI%IedB,HI%jsd:HI%jed)</computeroutput></para>
</listitem><listitem><para>declaration of v-point data is of the form <computeroutput>v(HI%isd:HI%ied,HI%JsdB:HI%JedB)</computeroutput>.</para>
</listitem></itemizedlist>
</para>
<para>For more detail explanation of horizontal indexing see <ref refid="Horizontal_Indexing" kindref="compound">Horizontal indexing and memory</ref>. </para>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_hor_index.F90" line="2" column="1"/>
  </compounddef>
</doxygen>
