<?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.19" xml:lang="en-US">
  <compounddef id="namespacemom__array__transform" kind="namespace" language="Fortran">
    <compoundname>mom_array_transform</compoundname>
    <innerclass refid="interfacemom__array__transform_1_1allocate__rotated__array" prot="private">mom_array_transform::allocate_rotated_array</innerclass>
    <innerclass refid="interfacemom__array__transform_1_1rotate__array" prot="private">mom_array_transform::rotate_array</innerclass>
    <innerclass refid="interfacemom__array__transform_1_1rotate__array__pair" prot="private">mom_array_transform::rotate_array_pair</innerclass>
    <innerclass refid="interfacemom__array__transform_1_1rotate__vector" prot="private">mom_array_transform::rotate_vector</innerclass>
      <sectiondef kind="func">
      <memberdef kind="function" id="namespacemom__array__transform_1a9e696dd46cc0215ce5361a27b873e78a" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::rotate_array_real_2d</definition>
        <argsstring>(A_in, turns, A)</argsstring>
        <name>rotate_array_real_2d</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <briefdescription>
<para>Rotate the elements of a 2d real array along first and second axes. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Unrotated array </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">turns</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of quarter turns </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">a</parametername>
</parameternamelist>
<parameterdescription>
<para>Rotated array </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="74" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="75" bodyend="94"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1a653d3acfc23fc5aee9a4fdf2f3f21ce0" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::rotate_array_real_3d</definition>
        <argsstring>(A_in, turns, A)</argsstring>
        <name>rotate_array_real_3d</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <briefdescription>
<para>Rotate the elements of a 3d real array along first and second axes. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Unrotated array </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">turns</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of quarter turns </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">a</parametername>
</parameternamelist>
<parameterdescription>
<para>Rotated array </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="99" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="100" bodyend="108"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1a5da99484437f154ab75dfac799b2dca2" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::rotate_array_real_4d</definition>
        <argsstring>(A_in, turns, A)</argsstring>
        <name>rotate_array_real_4d</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <briefdescription>
<para>Rotate the elements of a 4d real array along first and second axes. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Unrotated array </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">turns</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of quarter turns </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">a</parametername>
</parameternamelist>
<parameterdescription>
<para>Rotated array </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="113" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="114" bodyend="122"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1a3d81d37c217c006bceb044788852328f" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::rotate_array_integer</definition>
        <argsstring>(A_in, turns, A)</argsstring>
        <name>rotate_array_integer</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <briefdescription>
<para>Rotate the elements of a 2d integer array along first and second axes. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Unrotated array </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">turns</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of quarter turns </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">a</parametername>
</parameternamelist>
<parameterdescription>
<para>Rotated array </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="127" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="128" bodyend="147"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1acbc7da0bb01abfaf85cd259fcb7b2479" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::rotate_array_logical</definition>
        <argsstring>(A_in, turns, A)</argsstring>
        <name>rotate_array_logical</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <briefdescription>
<para>Rotate the elements of a 2d logical array along first and second axes. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Unrotated array </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">turns</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of quarter turns </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">a</parametername>
</parameternamelist>
<parameterdescription>
<para>Rotated array </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="152" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="153" bodyend="172"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1a5ea1687ec970a76638528bbf6c0c0dff" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::rotate_array_pair_real_2d</definition>
        <argsstring>(A_in, B_in, turns, A, B)</argsstring>
        <name>rotate_array_pair_real_2d</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>B_in</type>
          <defname>B_in</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <param>
          <type>B</type>
          <defname>B</defname>
        </param>
        <briefdescription>
<para>Rotate the elements of a 2d real array pair along first and second axes. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Unrotated scalar array pair </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">b_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Unrotated scalar array pair </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">turns</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of quarter turns </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">a</parametername>
</parameternamelist>
<parameterdescription>
<para>Rotated scalar array pair </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">b</parametername>
</parameternamelist>
<parameterdescription>
<para>Rotated scalar array pair </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="177" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="178" bodyend="190"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1a61738c50a6259d7a24454b55d7cee327" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::rotate_array_pair_real_3d</definition>
        <argsstring>(A_in, B_in, turns, A, B)</argsstring>
        <name>rotate_array_pair_real_3d</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>B_in</type>
          <defname>B_in</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <param>
          <type>B</type>
          <defname>B</defname>
        </param>
        <briefdescription>
<para>Rotate the elements of a 3d real array pair along first and second axes. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Unrotated scalar array pair </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">b_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Unrotated scalar array pair </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">turns</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of quarter turns </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">a</parametername>
</parameternamelist>
<parameterdescription>
<para>Rotated scalar array pair </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">b</parametername>
</parameternamelist>
<parameterdescription>
<para>Rotated scalar array pair </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="195" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="196" bodyend="207"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1a3e81187b32b90f2790162fada0f2a37d" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::rotate_array_pair_integer</definition>
        <argsstring>(A_in, B_in, turns, A, B)</argsstring>
        <name>rotate_array_pair_integer</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>B_in</type>
          <defname>B_in</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <param>
          <type>B</type>
          <defname>B</defname>
        </param>
        <briefdescription>
<para>Rotate the elements of a 4d real array pair along first and second axes. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Unrotated scalar array pair </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">b_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Unrotated scalar array pair </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">turns</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of quarter turns </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">a</parametername>
</parameternamelist>
<parameterdescription>
<para>Rotated scalar array pair </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">b</parametername>
</parameternamelist>
<parameterdescription>
<para>Rotated scalar array pair </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="212" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="213" bodyend="225"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1a9ed7c50abbc455ea4d719d08c23f3684" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::rotate_vector_real_2d</definition>
        <argsstring>(A_in, B_in, turns, A, B)</argsstring>
        <name>rotate_vector_real_2d</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>B_in</type>
          <defname>B_in</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <param>
          <type>B</type>
          <defname>B</defname>
        </param>
        <briefdescription>
<para>Rotate the elements of a 2d real vector along first and second axes. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>First component of unrotated vector </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">b_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Second component of unrotated vector </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">turns</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of quarter turns </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">a</parametername>
</parameternamelist>
<parameterdescription>
<para>First component of rotated vector </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">b</parametername>
</parameternamelist>
<parameterdescription>
<para>Second component of unrotated vector </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="230" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="231" bodyend="243"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1a6f1366396c79e58ae22aac41cba11404" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::rotate_vector_real_3d</definition>
        <argsstring>(A_in, B_in, turns, A, B)</argsstring>
        <name>rotate_vector_real_3d</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>B_in</type>
          <defname>B_in</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <param>
          <type>B</type>
          <defname>B</defname>
        </param>
        <briefdescription>
<para>Rotate the elements of a 3d real vector along first and second axes. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>First component of unrotated vector </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">b_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Second component of unrotated vector </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">turns</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of quarter turns </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">a</parametername>
</parameternamelist>
<parameterdescription>
<para>First component of rotated vector </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">b</parametername>
</parameternamelist>
<parameterdescription>
<para>Second component of unrotated vector </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="248" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="249" bodyend="259"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1a4f9b5997a21b429887ebb4e598d8779a" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::rotate_vector_real_4d</definition>
        <argsstring>(A_in, B_in, turns, A, B)</argsstring>
        <name>rotate_vector_real_4d</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>B_in</type>
          <defname>B_in</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <param>
          <type>B</type>
          <defname>B</defname>
        </param>
        <briefdescription>
<para>Rotate the elements of a 4d real vector along first and second axes. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>First component of unrotated vector </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">b_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Second component of unrotated vector </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">turns</parametername>
</parameternamelist>
<parameterdescription>
<para>Number of quarter turns </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">a</parametername>
</parameternamelist>
<parameterdescription>
<para>First component of rotated vector </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="out">b</parametername>
</parameternamelist>
<parameterdescription>
<para>Second component of unrotated vector </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="264" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="265" bodyend="276"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1a449d5739f47d0171ba6f73034159d002" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::allocate_rotated_array_real_2d</definition>
        <argsstring>(A_in, lb, turns, A)</argsstring>
        <name>allocate_rotated_array_real_2d</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>lb</type>
          <defname>lb</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <briefdescription>
<para>Allocate a 2d real array on the rotated index map of a reference array. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">lb</parametername>
</parameternamelist>
<parameterdescription>
<para>Lower index bounds of A_in </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Reference array </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">a</parametername>
</parameternamelist>
<parameterdescription>
<para>Array on rotated index </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="281" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="282" bodyend="296"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1a5b9bce35c3396379229c4c1007e29c34" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::allocate_rotated_array_real_3d</definition>
        <argsstring>(A_in, lb, turns, A)</argsstring>
        <name>allocate_rotated_array_real_3d</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>lb</type>
          <defname>lb</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <briefdescription>
<para>Allocate a 3d real array on the rotated index map of a reference array. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">lb</parametername>
</parameternamelist>
<parameterdescription>
<para>Lower index bounds of A_in </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Reference array </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">a</parametername>
</parameternamelist>
<parameterdescription>
<para>Array on rotated index </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="301" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="302" bodyend="316"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1ae8b3fdcc0d725f9f516c2af0fc16d21b" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::allocate_rotated_array_real_4d</definition>
        <argsstring>(A_in, lb, turns, A)</argsstring>
        <name>allocate_rotated_array_real_4d</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>lb</type>
          <defname>lb</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <briefdescription>
<para>Allocate a 4d real array on the rotated index map of a reference array. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">lb</parametername>
</parameternamelist>
<parameterdescription>
<para>Lower index bounds of A_in </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Reference array </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">a</parametername>
</parameternamelist>
<parameterdescription>
<para>Array on rotated index </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="321" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="322" bodyend="336"/>
      </memberdef>
      <memberdef kind="function" id="namespacemom__array__transform_1a0ecc1ce64f7ebd17b906fd267c171369" prot="private" static="no" const="no" explicit="no" inline="no" virt="non-virtual">
        <type>subroutine</type>
        <definition>subroutine mom_array_transform::allocate_rotated_array_integer</definition>
        <argsstring>(A_in, lb, turns, A)</argsstring>
        <name>allocate_rotated_array_integer</name>
        <param>
          <type>A_in</type>
          <defname>A_in</defname>
        </param>
        <param>
          <type>lb</type>
          <defname>lb</defname>
        </param>
        <param>
          <type>turns</type>
          <defname>turns</defname>
        </param>
        <param>
          <type>A</type>
          <defname>A</defname>
        </param>
        <briefdescription>
<para>Allocate a 2d integer array on the rotated index map of a reference array. </para>
        </briefdescription>
        <detaileddescription>
<para><parameterlist kind="param"><parameteritem>
<parameternamelist>
<parametername direction="in">lb</parametername>
</parameternamelist>
<parameterdescription>
<para>Lower index bounds of A_in </para>
</parameterdescription>
</parameteritem>
<parameteritem>
<parameternamelist>
<parametername direction="in">a_in</parametername>
</parameternamelist>
<parameterdescription>
<para>Reference array </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">a</parametername>
</parameternamelist>
<parameterdescription>
<para>Array on rotated index </para>
</parameterdescription>
</parameteritem>
</parameterlist>
</para>
        </detaileddescription>
        <inbodydescription>
        </inbodydescription>
        <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="341" column="1" bodyfile="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" bodystart="342" bodyend="355"/>
      </memberdef>
      </sectiondef>
    <briefdescription>
<para>Module for supporting the rotation of a field&apos;s index map. The implementation of each angle is described below. </para>
    </briefdescription>
    <detaileddescription>
<para>+90deg: B(i,j) = A(n-j,i) = transpose, then row reverse 180deg: B(i,j) = A(m-i,n-j) = row reversal + column reversal -90deg: B(i,j) = A(j,m-i) = row reverse, then transpose</para>
<para>90 degree rotations change the shape of the field, and are handled separately from 180 degree rotations. </para>
    </detaileddescription>
    <location file="/home/cermak/src/MOM6.devrob/src/framework/MOM_array_transform.F90" line="14" column="1"/>
  </compounddef>
</doxygen>
