\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{\texttt{ in}}  & {\em a\+\_\+in} & Unrotated array \\
\hline
\mbox{\texttt{ in}}  & {\em turns} & Number of quarter turns \\
\hline
\mbox{\texttt{ out}}  & {\em a} & Rotated array \\
\hline
\end{DoxyParams}


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


\begin{DoxyCode}{0}
\DoxyCodeLine{128   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: A\_in(:,:)\textcolor{comment}{  !< Unrotated array}}
\DoxyCodeLine{129   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{      !< Number of quarter turns}}
\DoxyCodeLine{130   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(out)} :: A(:,:)\textcolor{comment}{    !< Rotated array}}
\DoxyCodeLine{131 }
\DoxyCodeLine{132   \textcolor{keywordtype}{integer} :: m, n}
\DoxyCodeLine{133 }
\DoxyCodeLine{134   m = \textcolor{keyword}{size}(a\_in, 1)}
\DoxyCodeLine{135   n = \textcolor{keyword}{size}(a\_in, 2)}
\DoxyCodeLine{136 }
\DoxyCodeLine{137   \textcolor{keywordflow}{select case} (modulo(turns, 4))}
\DoxyCodeLine{138     \textcolor{keywordflow}{case}(0)}
\DoxyCodeLine{139       a(:,:) = a\_in(:,:)}
\DoxyCodeLine{140     \textcolor{keywordflow}{case}(1)}
\DoxyCodeLine{141       a(:,:) = transpose(a\_in)}
\DoxyCodeLine{142       a(:,:) = a(n:1:-1, :)}
\DoxyCodeLine{143     \textcolor{keywordflow}{case}(2)}
\DoxyCodeLine{144       a(:,:) = a\_in(m:1:-1, n:1:-1)}
\DoxyCodeLine{145     \textcolor{keywordflow}{case}(3)}
\DoxyCodeLine{146       a(:,:) = transpose(a\_in(m:1:-1, :))}
\DoxyCodeLine{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{\texttt{ in}}  & {\em a\+\_\+in} & Unrotated array \\
\hline
\mbox{\texttt{ in}}  & {\em turns} & Number of quarter turns \\
\hline
\mbox{\texttt{ out}}  & {\em a} & Rotated array \\
\hline
\end{DoxyParams}


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


\begin{DoxyCode}{0}
\DoxyCodeLine{153   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(in)} :: A\_in(:,:)\textcolor{comment}{  !< Unrotated array}}
\DoxyCodeLine{154   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{      !< Number of quarter turns}}
\DoxyCodeLine{155   \textcolor{keywordtype}{logical}, \textcolor{keywordtype}{intent(out)} :: A(:,:)\textcolor{comment}{    !< Rotated array}}
\DoxyCodeLine{156 }
\DoxyCodeLine{157   \textcolor{keywordtype}{integer} :: m, n}
\DoxyCodeLine{158 }
\DoxyCodeLine{159   m = \textcolor{keyword}{size}(a\_in, 1)}
\DoxyCodeLine{160   n = \textcolor{keyword}{size}(a\_in, 2)}
\DoxyCodeLine{161 }
\DoxyCodeLine{162   \textcolor{keywordflow}{select case} (modulo(turns, 4))}
\DoxyCodeLine{163     \textcolor{keywordflow}{case}(0)}
\DoxyCodeLine{164       a(:,:) = a\_in(:,:)}
\DoxyCodeLine{165     \textcolor{keywordflow}{case}(1)}
\DoxyCodeLine{166       a(:,:) = transpose(a\_in)}
\DoxyCodeLine{167       a(:,:) = a(n:1:-1, :)}
\DoxyCodeLine{168     \textcolor{keywordflow}{case}(2)}
\DoxyCodeLine{169       a(:,:) = a\_in(m:1:-1, n:1:-1)}
\DoxyCodeLine{170     \textcolor{keywordflow}{case}(3)}
\DoxyCodeLine{171       a(:,:) = transpose(a\_in(m:1:-1, :))}
\DoxyCodeLine{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{\texttt{ in}}  & {\em a\+\_\+in} & Unrotated array \\
\hline
\mbox{\texttt{ in}}  & {\em turns} & Number of quarter turns \\
\hline
\mbox{\texttt{ out}}  & {\em a} & Rotated array \\
\hline
\end{DoxyParams}


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


\begin{DoxyCode}{0}
\DoxyCodeLine{75 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{intent(in)} :: A\_in(:,:)\textcolor{comment}{ !< Unrotated array}}
\DoxyCodeLine{76   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{  !< Number of quarter turns}}
\DoxyCodeLine{77 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{intent(out)} :: A(:,:)\textcolor{comment}{   !< Rotated array}}
\DoxyCodeLine{78 }
\DoxyCodeLine{79   \textcolor{keywordtype}{integer} :: m, n}
\DoxyCodeLine{80 }
\DoxyCodeLine{81   m = \textcolor{keyword}{size}(a\_in, 1)}
\DoxyCodeLine{82   n = \textcolor{keyword}{size}(a\_in, 2)}
\DoxyCodeLine{83 }
\DoxyCodeLine{84   \textcolor{keywordflow}{select case} (modulo(turns, 4))}
\DoxyCodeLine{85     \textcolor{keywordflow}{case}(0)}
\DoxyCodeLine{86       a(:,:) = a\_in(:,:)}
\DoxyCodeLine{87     \textcolor{keywordflow}{case}(1)}
\DoxyCodeLine{88       a(:,:) = transpose(a\_in)}
\DoxyCodeLine{89       a(:,:) = a(n:1:-1, :)}
\DoxyCodeLine{90     \textcolor{keywordflow}{case}(2)}
\DoxyCodeLine{91       a(:,:) = a\_in(m:1:-1, n:1:-1)}
\DoxyCodeLine{92     \textcolor{keywordflow}{case}(3)}
\DoxyCodeLine{93       a(:,:) = transpose(a\_in(m:1:-1, :))}
\DoxyCodeLine{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{\texttt{ in}}  & {\em a\+\_\+in} & Unrotated array \\
\hline
\mbox{\texttt{ in}}  & {\em turns} & Number of quarter turns \\
\hline
\mbox{\texttt{ out}}  & {\em a} & Rotated array \\
\hline
\end{DoxyParams}


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


\begin{DoxyCode}{0}
\DoxyCodeLine{100 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{intent(in)} :: A\_in(:,:,:)\textcolor{comment}{ !< Unrotated array}}
\DoxyCodeLine{101   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{    !< Number of quarter turns}}
\DoxyCodeLine{102 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{intent(out)} :: A(:,:,:)\textcolor{comment}{   !< Rotated array}}
\DoxyCodeLine{103 }
\DoxyCodeLine{104   \textcolor{keywordtype}{integer} :: k}
\DoxyCodeLine{105 }
\DoxyCodeLine{106   \textcolor{keywordflow}{do} k = 1, \textcolor{keyword}{size}(a\_in, 3)}
\DoxyCodeLine{107     \textcolor{keyword}{call }rotate\_array(a\_in(:,:,k), turns, a(:,:,k))}
\DoxyCodeLine{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{\texttt{ in}}  & {\em a\+\_\+in} & Unrotated array \\
\hline
\mbox{\texttt{ in}}  & {\em turns} & Number of quarter turns \\
\hline
\mbox{\texttt{ out}}  & {\em a} & Rotated array \\
\hline
\end{DoxyParams}


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


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