\hypertarget{interfacemom__array__transform_1_1rotate__array}{}\section{mom\+\_\+array\+\_\+transform\+:\+:rotate\+\_\+array Interface Reference}
\label{interfacemom__array__transform_1_1rotate__array}\index{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array@{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array}}


\subsection{Detailed Description}
Rotate the elements of an array to the rotated set of indices. Rotation is applied across the first and second axes of the array. 

Definition at line 27 of file M\+O\+M\+\_\+array\+\_\+transform.\+F90.

\subsection*{Private functions}
\begin{DoxyCompactItemize}
\item 
subroutine \mbox{\hyperlink{interfacemom__array__transform_1_1rotate__array_a5b1fa8f90d7caf8744a442c79bfd98ce}{rotate\+\_\+array\+\_\+real\+\_\+2d}} (A\+\_\+in, turns, A)
\begin{DoxyCompactList}\small\item\em Rotate the elements of a 2d real array along first and second axes. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__array__transform_1_1rotate__array_afa569900ea64208724a4278c52210f06}{rotate\+\_\+array\+\_\+real\+\_\+3d}} (A\+\_\+in, turns, A)
\begin{DoxyCompactList}\small\item\em Rotate the elements of a 3d real array along first and second axes. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__array__transform_1_1rotate__array_a719741abc39255071023bfa723a67271}{rotate\+\_\+array\+\_\+real\+\_\+4d}} (A\+\_\+in, turns, A)
\begin{DoxyCompactList}\small\item\em Rotate the elements of a 4d real array along first and second axes. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__array__transform_1_1rotate__array_a2cc738754c0955dbaa94896442551f30}{rotate\+\_\+array\+\_\+integer}} (A\+\_\+in, turns, A)
\begin{DoxyCompactList}\small\item\em Rotate the elements of a 2d integer array along first and second axes. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__array__transform_1_1rotate__array_aedb89b47ce3ed50185766e462330d5f2}{rotate\+\_\+array\+\_\+logical}} (A\+\_\+in, turns, A)
\begin{DoxyCompactList}\small\item\em Rotate the elements of a 2d logical array along first and second axes. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Rotate the elements of an array to the rotated set of indices. Rotation is applied across the first and second axes of the array. 

Definition at line 27 of file M\+O\+M\+\_\+array\+\_\+transform.\+F90.



\subsection{Functions and subroutines}
\mbox{\Hypertarget{interfacemom__array__transform_1_1rotate__array_a2cc738754c0955dbaa94896442551f30}\label{interfacemom__array__transform_1_1rotate__array_a2cc738754c0955dbaa94896442551f30}} 
\index{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array@{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array}!rotate\+\_\+array\+\_\+integer@{rotate\+\_\+array\+\_\+integer}}
\index{rotate\+\_\+array\+\_\+integer@{rotate\+\_\+array\+\_\+integer}!mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array@{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array}}
\subsubsection{\texorpdfstring{rotate\+\_\+array\+\_\+integer()}{rotate\_array\_integer()}}
{\footnotesize\ttfamily subroutine mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array\+::rotate\+\_\+array\+\_\+integer (\begin{DoxyParamCaption}\item[{integer, dimension(\+:,\+:), intent(in)}]{A\+\_\+in,  }\item[{integer, intent(in)}]{turns,  }\item[{integer, dimension(\+:,\+:), intent(out)}]{A }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Rotate the elements of a 2d integer array along first and second axes. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em a\+\_\+in} & Unrotated array\\
\hline
\mbox{\tt in}  & {\em turns} & Number of quarter turns\\
\hline
\mbox{\tt out}  & {\em a} & Rotated array \\
\hline
\end{DoxyParams}


Definition at line 128 of file M\+O\+M\+\_\+array\+\_\+transform.\+F90.


\begin{DoxyCode}
128   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: A\_in(:,:)\textcolor{comment}{  !< Unrotated array}
129   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{      !< Number of quarter turns}
130   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(out)} :: A(:,:)\textcolor{comment}{    !< Rotated array}
131 
132   \textcolor{keywordtype}{integer} :: m, n
133 
134   m = \textcolor{keyword}{size}(a\_in, 1)
135   n = \textcolor{keyword}{size}(a\_in, 2)
136 
137   \textcolor{keywordflow}{select case} (modulo(turns, 4))
138     \textcolor{keywordflow}{case}(0)
139       a(:,:) = a\_in(:,:)
140     \textcolor{keywordflow}{case}(1)
141       a(:,:) = transpose(a\_in)
142       a(:,:) = a(n:1:-1, :)
143     \textcolor{keywordflow}{case}(2)
144       a(:,:) = a\_in(m:1:-1, n:1:-1)
145     \textcolor{keywordflow}{case}(3)
146       a(:,:) = transpose(a\_in(m:1:-1, :))
147 \textcolor{keywordflow}{  end select}
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__array__transform_1_1rotate__array_aedb89b47ce3ed50185766e462330d5f2}\label{interfacemom__array__transform_1_1rotate__array_aedb89b47ce3ed50185766e462330d5f2}} 
\index{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array@{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array}!rotate\+\_\+array\+\_\+logical@{rotate\+\_\+array\+\_\+logical}}
\index{rotate\+\_\+array\+\_\+logical@{rotate\+\_\+array\+\_\+logical}!mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array@{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array}}
\subsubsection{\texorpdfstring{rotate\+\_\+array\+\_\+logical()}{rotate\_array\_logical()}}
{\footnotesize\ttfamily subroutine mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array\+::rotate\+\_\+array\+\_\+logical (\begin{DoxyParamCaption}\item[{logical, dimension(\+:,\+:), intent(in)}]{A\+\_\+in,  }\item[{integer, intent(in)}]{turns,  }\item[{logical, dimension(\+:,\+:), intent(out)}]{A }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Rotate the elements of a 2d logical array along first and second axes. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em a\+\_\+in} & Unrotated array\\
\hline
\mbox{\tt in}  & {\em turns} & Number of quarter turns\\
\hline
\mbox{\tt out}  & {\em a} & Rotated array \\
\hline
\end{DoxyParams}


Definition at line 153 of file M\+O\+M\+\_\+array\+\_\+transform.\+F90.


\begin{DoxyCode}
153   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)} :: A\_in(:,:)\textcolor{comment}{  !< Unrotated array}
154   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{      !< Number of quarter turns}
155   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(out)} :: A(:,:)\textcolor{comment}{    !< Rotated array}
156 
157   \textcolor{keywordtype}{integer} :: m, n
158 
159   m = \textcolor{keyword}{size}(a\_in, 1)
160   n = \textcolor{keyword}{size}(a\_in, 2)
161 
162   \textcolor{keywordflow}{select case} (modulo(turns, 4))
163     \textcolor{keywordflow}{case}(0)
164       a(:,:) = a\_in(:,:)
165     \textcolor{keywordflow}{case}(1)
166       a(:,:) = transpose(a\_in)
167       a(:,:) = a(n:1:-1, :)
168     \textcolor{keywordflow}{case}(2)
169       a(:,:) = a\_in(m:1:-1, n:1:-1)
170     \textcolor{keywordflow}{case}(3)
171       a(:,:) = transpose(a\_in(m:1:-1, :))
172 \textcolor{keywordflow}{  end select}
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__array__transform_1_1rotate__array_a5b1fa8f90d7caf8744a442c79bfd98ce}\label{interfacemom__array__transform_1_1rotate__array_a5b1fa8f90d7caf8744a442c79bfd98ce}} 
\index{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array@{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array}!rotate\+\_\+array\+\_\+real\+\_\+2d@{rotate\+\_\+array\+\_\+real\+\_\+2d}}
\index{rotate\+\_\+array\+\_\+real\+\_\+2d@{rotate\+\_\+array\+\_\+real\+\_\+2d}!mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array@{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array}}
\subsubsection{\texorpdfstring{rotate\+\_\+array\+\_\+real\+\_\+2d()}{rotate\_array\_real\_2d()}}
{\footnotesize\ttfamily subroutine mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array\+::rotate\+\_\+array\+\_\+real\+\_\+2d (\begin{DoxyParamCaption}\item[{real, dimension(\+:,\+:), intent(in)}]{A\+\_\+in,  }\item[{integer, intent(in)}]{turns,  }\item[{real, dimension(\+:,\+:), intent(out)}]{A }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Rotate the elements of a 2d real array along first and second axes. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em a\+\_\+in} & Unrotated array\\
\hline
\mbox{\tt in}  & {\em turns} & Number of quarter turns\\
\hline
\mbox{\tt out}  & {\em a} & Rotated array \\
\hline
\end{DoxyParams}


Definition at line 75 of file M\+O\+M\+\_\+array\+\_\+transform.\+F90.


\begin{DoxyCode}
75   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)} :: A\_in(:,:)\textcolor{comment}{ !< Unrotated array}
76   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{  !< Number of quarter turns}
77   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(out)} :: A(:,:)\textcolor{comment}{   !< Rotated array}
78 
79   \textcolor{keywordtype}{integer} :: m, n
80 
81   m = \textcolor{keyword}{size}(a\_in, 1)
82   n = \textcolor{keyword}{size}(a\_in, 2)
83 
84   \textcolor{keywordflow}{select case} (modulo(turns, 4))
85     \textcolor{keywordflow}{case}(0)
86       a(:,:) = a\_in(:,:)
87     \textcolor{keywordflow}{case}(1)
88       a(:,:) = transpose(a\_in)
89       a(:,:) = a(n:1:-1, :)
90     \textcolor{keywordflow}{case}(2)
91       a(:,:) = a\_in(m:1:-1, n:1:-1)
92     \textcolor{keywordflow}{case}(3)
93       a(:,:) = transpose(a\_in(m:1:-1, :))
94 \textcolor{keywordflow}{  end select}
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__array__transform_1_1rotate__array_afa569900ea64208724a4278c52210f06}\label{interfacemom__array__transform_1_1rotate__array_afa569900ea64208724a4278c52210f06}} 
\index{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array@{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array}!rotate\+\_\+array\+\_\+real\+\_\+3d@{rotate\+\_\+array\+\_\+real\+\_\+3d}}
\index{rotate\+\_\+array\+\_\+real\+\_\+3d@{rotate\+\_\+array\+\_\+real\+\_\+3d}!mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array@{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array}}
\subsubsection{\texorpdfstring{rotate\+\_\+array\+\_\+real\+\_\+3d()}{rotate\_array\_real\_3d()}}
{\footnotesize\ttfamily subroutine mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array\+::rotate\+\_\+array\+\_\+real\+\_\+3d (\begin{DoxyParamCaption}\item[{real, dimension(\+:,\+:,\+:), intent(in)}]{A\+\_\+in,  }\item[{integer, intent(in)}]{turns,  }\item[{real, dimension(\+:,\+:,\+:), intent(out)}]{A }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Rotate the elements of a 3d real array along first and second axes. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em a\+\_\+in} & Unrotated array\\
\hline
\mbox{\tt in}  & {\em turns} & Number of quarter turns\\
\hline
\mbox{\tt out}  & {\em a} & Rotated array \\
\hline
\end{DoxyParams}


Definition at line 100 of file M\+O\+M\+\_\+array\+\_\+transform.\+F90.


\begin{DoxyCode}
100   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)} :: A\_in(:,:,:)\textcolor{comment}{ !< Unrotated array}
101   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{    !< Number of quarter turns}
102   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(out)} :: A(:,:,:)\textcolor{comment}{   !< Rotated array}
103 
104   \textcolor{keywordtype}{integer} :: k
105 
106   \textcolor{keywordflow}{do} k = 1, \textcolor{keyword}{size}(a\_in, 3)
107     \textcolor{keyword}{call }rotate\_array(a\_in(:,:,k), turns, a(:,:,k))
108 \textcolor{keywordflow}{  enddo}
\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__array__transform_1_1rotate__array_a719741abc39255071023bfa723a67271}\label{interfacemom__array__transform_1_1rotate__array_a719741abc39255071023bfa723a67271}} 
\index{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array@{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array}!rotate\+\_\+array\+\_\+real\+\_\+4d@{rotate\+\_\+array\+\_\+real\+\_\+4d}}
\index{rotate\+\_\+array\+\_\+real\+\_\+4d@{rotate\+\_\+array\+\_\+real\+\_\+4d}!mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array@{mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array}}
\subsubsection{\texorpdfstring{rotate\+\_\+array\+\_\+real\+\_\+4d()}{rotate\_array\_real\_4d()}}
{\footnotesize\ttfamily subroutine mom\+\_\+array\+\_\+transform\+::rotate\+\_\+array\+::rotate\+\_\+array\+\_\+real\+\_\+4d (\begin{DoxyParamCaption}\item[{real, dimension(\+:,\+:,\+:,\+:), intent(in)}]{A\+\_\+in,  }\item[{integer, intent(in)}]{turns,  }\item[{real, dimension(\+:,\+:,\+:,\+:), intent(out)}]{A }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Rotate the elements of a 4d real array along first and second axes. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em a\+\_\+in} & Unrotated array\\
\hline
\mbox{\tt in}  & {\em turns} & Number of quarter turns\\
\hline
\mbox{\tt out}  & {\em a} & Rotated array \\
\hline
\end{DoxyParams}


Definition at line 114 of file M\+O\+M\+\_\+array\+\_\+transform.\+F90.


\begin{DoxyCode}
114   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)} :: A\_in(:,:,:,:)\textcolor{comment}{ !< Unrotated array}
115   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{      !< Number of quarter turns}
116   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(out)} :: A(:,:,:,:)\textcolor{comment}{   !< Rotated array}
117 
118   \textcolor{keywordtype}{integer} :: n
119 
120   \textcolor{keywordflow}{do} n = 1, \textcolor{keyword}{size}(a\_in, 4)
121     \textcolor{keyword}{call }rotate\_array(a\_in(:,:,:,n), turns, a(:,:,:,n))
122 \textcolor{keywordflow}{  enddo}
\end{DoxyCode}


The documentation for this interface was generated from the following file\+:\begin{DoxyCompactItemize}
\item 
/home/cermak/src/\+M\+O\+M6.\+devrob/src/framework/M\+O\+M\+\_\+array\+\_\+transform.\+F90\end{DoxyCompactItemize}
