\hypertarget{interfacemom__array__transform_1_1allocate__rotated__array}{}\section{mom\+\_\+array\+\_\+transform\+::allocate\+\_\+rotated\+\_\+array Interface Reference}
\label{interfacemom__array__transform_1_1allocate__rotated__array}\index{mom\_array\_transform::allocate\_rotated\_array@{mom\_array\_transform::allocate\_rotated\_array}}


\subsection{Detailed Description}
Allocate an array based on the rotated index map of an unrotated reference array. 

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

\subsection*{Private functions}
\begin{DoxyCompactItemize}
\item 
subroutine \mbox{\hyperlink{interfacemom__array__transform_1_1allocate__rotated__array_a1db293cdf7d3738e63ca290bf5f44b11}{allocate\+\_\+rotated\+\_\+array\+\_\+real\+\_\+2d}} (A\+\_\+in, lb, turns, A)
\begin{DoxyCompactList}\small\item\em Allocate a 2d real array on the rotated index map of a reference array. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__array__transform_1_1allocate__rotated__array_a639edb83dbcf76b922f4cd7b2d0bdb5a}{allocate\+\_\+rotated\+\_\+array\+\_\+real\+\_\+3d}} (A\+\_\+in, lb, turns, A)
\begin{DoxyCompactList}\small\item\em Allocate a 3d real array on the rotated index map of a reference array. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__array__transform_1_1allocate__rotated__array_a8509233c6fed34e8615f8400cbdb1cf3}{allocate\+\_\+rotated\+\_\+array\+\_\+real\+\_\+4d}} (A\+\_\+in, lb, turns, A)
\begin{DoxyCompactList}\small\item\em Allocate a 4d real array on the rotated index map of a reference array. \end{DoxyCompactList}\item 
subroutine \mbox{\hyperlink{interfacemom__array__transform_1_1allocate__rotated__array_a498bc0fca58afd459aa0202b352b9c1a}{allocate\+\_\+rotated\+\_\+array\+\_\+integer}} (A\+\_\+in, lb, turns, A)
\begin{DoxyCompactList}\small\item\em Allocate a 2d integer array on the rotated index map of a reference array. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Allocate an array based on the rotated index map of an unrotated reference array. 

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



\subsection{Functions and subroutines}
\mbox{\Hypertarget{interfacemom__array__transform_1_1allocate__rotated__array_a498bc0fca58afd459aa0202b352b9c1a}\label{interfacemom__array__transform_1_1allocate__rotated__array_a498bc0fca58afd459aa0202b352b9c1a}} 
\index{mom\_array\_transform::allocate\_rotated\_array@{mom\_array\_transform::allocate\_rotated\_array}!allocate\_rotated\_array\_integer@{allocate\_rotated\_array\_integer}}
\index{allocate\_rotated\_array\_integer@{allocate\_rotated\_array\_integer}!mom\_array\_transform::allocate\_rotated\_array@{mom\_array\_transform::allocate\_rotated\_array}}
\subsubsection{\texorpdfstring{allocate\_rotated\_array\_integer()}{allocate\_rotated\_array\_integer()}}
{\footnotesize\ttfamily subroutine mom\+\_\+array\+\_\+transform\+::allocate\+\_\+rotated\+\_\+array\+::allocate\+\_\+rotated\+\_\+array\+\_\+integer (\begin{DoxyParamCaption}\item[{integer, dimension(lb(1)\+:,lb(2)\+:), intent(in)}]{A\+\_\+in,  }\item[{integer, dimension(2), intent(in)}]{lb,  }\item[{integer, intent(in)}]{turns,  }\item[{integer, dimension(\+:,\+:), intent(inout), allocatable}]{A }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Allocate a 2d integer array on the rotated index map of a reference array. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em lb} & Lower index bounds of A\+\_\+in \\
\hline
\mbox{\texttt{ in}}  & {\em a\+\_\+in} & Reference array \\
\hline
\mbox{\texttt{ in}}  & {\em turns} & Number of quarter turns \\
\hline
\mbox{\texttt{ in,out}}  & {\em a} & Array on rotated index \\
\hline
\end{DoxyParams}


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


\begin{DoxyCode}{0}
\DoxyCodeLine{342   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: lb(2)\textcolor{comment}{                  !< Lower index bounds of A\_in}}
\DoxyCodeLine{343   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: A\_in(lb(1):,lb(2):)\textcolor{comment}{    !< Reference array}}
\DoxyCodeLine{344   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{                  !< Number of quarter turns}}
\DoxyCodeLine{345   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}, \textcolor{keywordtype}{intent(inout)} :: A(:,:)\textcolor{comment}{ !< Array on rotated index}}
\DoxyCodeLine{346 }
\DoxyCodeLine{347   \textcolor{keywordtype}{integer} :: ub(2)}
\DoxyCodeLine{348 }
\DoxyCodeLine{349   ub(:) = ubound(a\_in)}
\DoxyCodeLine{350 }
\DoxyCodeLine{351   \textcolor{keywordflow}{if} (modulo(turns, 2) /= 0) \textcolor{keywordflow}{then}}
\DoxyCodeLine{352     \textcolor{keyword}{allocate}(a(lb(2):ub(2), lb(1):ub(1)))}
\DoxyCodeLine{353   \textcolor{keywordflow}{else}}
\DoxyCodeLine{354     \textcolor{keyword}{allocate}(a(lb(1):ub(1), lb(2):ub(2)))}
\DoxyCodeLine{355 \textcolor{keywordflow}{  endif}}

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__array__transform_1_1allocate__rotated__array_a1db293cdf7d3738e63ca290bf5f44b11}\label{interfacemom__array__transform_1_1allocate__rotated__array_a1db293cdf7d3738e63ca290bf5f44b11}} 
\index{mom\_array\_transform::allocate\_rotated\_array@{mom\_array\_transform::allocate\_rotated\_array}!allocate\_rotated\_array\_real\_2d@{allocate\_rotated\_array\_real\_2d}}
\index{allocate\_rotated\_array\_real\_2d@{allocate\_rotated\_array\_real\_2d}!mom\_array\_transform::allocate\_rotated\_array@{mom\_array\_transform::allocate\_rotated\_array}}
\subsubsection{\texorpdfstring{allocate\_rotated\_array\_real\_2d()}{allocate\_rotated\_array\_real\_2d()}}
{\footnotesize\ttfamily subroutine mom\+\_\+array\+\_\+transform\+::allocate\+\_\+rotated\+\_\+array\+::allocate\+\_\+rotated\+\_\+array\+\_\+real\+\_\+2d (\begin{DoxyParamCaption}\item[{real, dimension(lb(1)\+:, lb(2)\+:), intent(in)}]{A\+\_\+in,  }\item[{integer, dimension(2), intent(in)}]{lb,  }\item[{integer, intent(in)}]{turns,  }\item[{real, dimension(\+:,\+:), intent(inout), allocatable}]{A }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Allocate a 2d real array on the rotated index map of a reference array. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em lb} & Lower index bounds of A\+\_\+in \\
\hline
\mbox{\texttt{ in}}  & {\em a\+\_\+in} & Reference array \\
\hline
\mbox{\texttt{ in}}  & {\em turns} & Number of quarter turns \\
\hline
\mbox{\texttt{ in,out}}  & {\em a} & Array on rotated index \\
\hline
\end{DoxyParams}


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


\begin{DoxyCode}{0}
\DoxyCodeLine{282   \textcolor{comment}{! NOTE: lb must be declared before A\_in}}
\DoxyCodeLine{283   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: lb(2)\textcolor{comment}{                !< Lower index bounds of A\_in}}
\DoxyCodeLine{284 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{intent(in)} :: A\_in(lb(1):, lb(2):)\textcolor{comment}{    !< Reference array}}
\DoxyCodeLine{285   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{                !< Number of quarter turns}}
\DoxyCodeLine{286 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{allocatable}, \textcolor{keywordtype}{intent(inout)} :: A(:,:)\textcolor{comment}{  !< Array on rotated index}}
\DoxyCodeLine{287 }
\DoxyCodeLine{288   \textcolor{keywordtype}{integer} :: ub(2)}
\DoxyCodeLine{289 }
\DoxyCodeLine{290   ub(:) = ubound(a\_in)}
\DoxyCodeLine{291 }
\DoxyCodeLine{292   \textcolor{keywordflow}{if} (modulo(turns, 2) /= 0) \textcolor{keywordflow}{then}}
\DoxyCodeLine{293     \textcolor{keyword}{allocate}(a(lb(2):ub(2), lb(1):ub(1)))}
\DoxyCodeLine{294   \textcolor{keywordflow}{else}}
\DoxyCodeLine{295     \textcolor{keyword}{allocate}(a(lb(1):ub(1), lb(2):ub(2)))}
\DoxyCodeLine{296 \textcolor{keywordflow}{  endif}}

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__array__transform_1_1allocate__rotated__array_a639edb83dbcf76b922f4cd7b2d0bdb5a}\label{interfacemom__array__transform_1_1allocate__rotated__array_a639edb83dbcf76b922f4cd7b2d0bdb5a}} 
\index{mom\_array\_transform::allocate\_rotated\_array@{mom\_array\_transform::allocate\_rotated\_array}!allocate\_rotated\_array\_real\_3d@{allocate\_rotated\_array\_real\_3d}}
\index{allocate\_rotated\_array\_real\_3d@{allocate\_rotated\_array\_real\_3d}!mom\_array\_transform::allocate\_rotated\_array@{mom\_array\_transform::allocate\_rotated\_array}}
\subsubsection{\texorpdfstring{allocate\_rotated\_array\_real\_3d()}{allocate\_rotated\_array\_real\_3d()}}
{\footnotesize\ttfamily subroutine mom\+\_\+array\+\_\+transform\+::allocate\+\_\+rotated\+\_\+array\+::allocate\+\_\+rotated\+\_\+array\+\_\+real\+\_\+3d (\begin{DoxyParamCaption}\item[{real, dimension(lb(1)\+:, lb(2)\+:, lb(3)\+:), intent(in)}]{A\+\_\+in,  }\item[{integer, dimension(3), intent(in)}]{lb,  }\item[{integer, intent(in)}]{turns,  }\item[{real, dimension(\+:,\+:,\+:), intent(inout), allocatable}]{A }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Allocate a 3d real array on the rotated index map of a reference array. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em lb} & Lower index bounds of A\+\_\+in \\
\hline
\mbox{\texttt{ in}}  & {\em a\+\_\+in} & Reference array \\
\hline
\mbox{\texttt{ in}}  & {\em turns} & Number of quarter turns \\
\hline
\mbox{\texttt{ in,out}}  & {\em a} & Array on rotated index \\
\hline
\end{DoxyParams}


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


\begin{DoxyCode}{0}
\DoxyCodeLine{302   \textcolor{comment}{! NOTE: lb must be declared before A\_in}}
\DoxyCodeLine{303   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: lb(3)\textcolor{comment}{                    !< Lower index bounds of A\_in}}
\DoxyCodeLine{304 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{intent(in)} :: A\_in(lb(1):, lb(2):, lb(3):)\textcolor{comment}{  !< Reference array}}
\DoxyCodeLine{305   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{                    !< Number of quarter turns}}
\DoxyCodeLine{306 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{allocatable}, \textcolor{keywordtype}{intent(inout)} :: A(:,:,:)\textcolor{comment}{    !< Array on rotated index}}
\DoxyCodeLine{307 }
\DoxyCodeLine{308   \textcolor{keywordtype}{integer} :: ub(3)}
\DoxyCodeLine{309 }
\DoxyCodeLine{310   ub(:) = ubound(a\_in)}
\DoxyCodeLine{311 }
\DoxyCodeLine{312   \textcolor{keywordflow}{if} (modulo(turns, 2) /= 0) \textcolor{keywordflow}{then}}
\DoxyCodeLine{313     \textcolor{keyword}{allocate}(a(lb(2):ub(2), lb(1):ub(1), lb(3):ub(3)))}
\DoxyCodeLine{314   \textcolor{keywordflow}{else}}
\DoxyCodeLine{315     \textcolor{keyword}{allocate}(a(lb(1):ub(1), lb(2):ub(2), lb(3):ub(3)))}
\DoxyCodeLine{316 \textcolor{keywordflow}{  endif}}

\end{DoxyCode}
\mbox{\Hypertarget{interfacemom__array__transform_1_1allocate__rotated__array_a8509233c6fed34e8615f8400cbdb1cf3}\label{interfacemom__array__transform_1_1allocate__rotated__array_a8509233c6fed34e8615f8400cbdb1cf3}} 
\index{mom\_array\_transform::allocate\_rotated\_array@{mom\_array\_transform::allocate\_rotated\_array}!allocate\_rotated\_array\_real\_4d@{allocate\_rotated\_array\_real\_4d}}
\index{allocate\_rotated\_array\_real\_4d@{allocate\_rotated\_array\_real\_4d}!mom\_array\_transform::allocate\_rotated\_array@{mom\_array\_transform::allocate\_rotated\_array}}
\subsubsection{\texorpdfstring{allocate\_rotated\_array\_real\_4d()}{allocate\_rotated\_array\_real\_4d()}}
{\footnotesize\ttfamily subroutine mom\+\_\+array\+\_\+transform\+::allocate\+\_\+rotated\+\_\+array\+::allocate\+\_\+rotated\+\_\+array\+\_\+real\+\_\+4d (\begin{DoxyParamCaption}\item[{real, dimension(lb(1)\+:,lb(2)\+:,lb(3)\+:,lb(4)\+:), intent(in)}]{A\+\_\+in,  }\item[{integer, dimension(4), intent(in)}]{lb,  }\item[{integer, intent(in)}]{turns,  }\item[{real, dimension(\+:,\+:,\+:,\+:), intent(inout), allocatable}]{A }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Allocate a 4d real array on the rotated index map of a reference array. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\texttt{ in}}  & {\em lb} & Lower index bounds of A\+\_\+in \\
\hline
\mbox{\texttt{ in}}  & {\em a\+\_\+in} & Reference array \\
\hline
\mbox{\texttt{ in}}  & {\em turns} & Number of quarter turns \\
\hline
\mbox{\texttt{ in,out}}  & {\em a} & Array on rotated index \\
\hline
\end{DoxyParams}


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


\begin{DoxyCode}{0}
\DoxyCodeLine{322   \textcolor{comment}{! NOTE: lb must be declared before A\_in}}
\DoxyCodeLine{323   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: lb(4)\textcolor{comment}{                    !< Lower index bounds of A\_in}}
\DoxyCodeLine{324 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{intent(in)} :: A\_in(lb(1):,lb(2):,lb(3):,lb(4):)\textcolor{comment}{ !< Reference array}}
\DoxyCodeLine{325   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{                    !< Number of quarter turns}}
\DoxyCodeLine{326 \textcolor{keywordtype}{  real}, \textcolor{keywordtype}{allocatable}, \textcolor{keywordtype}{intent(inout)} :: A(:,:,:,:)\textcolor{comment}{  !< Array on rotated index}}
\DoxyCodeLine{327 }
\DoxyCodeLine{328   \textcolor{keywordtype}{integer}:: ub(4)}
\DoxyCodeLine{329 }
\DoxyCodeLine{330   ub(:) = ubound(a\_in)}
\DoxyCodeLine{331 }
\DoxyCodeLine{332   \textcolor{keywordflow}{if} (modulo(turns, 2) /= 0) \textcolor{keywordflow}{then}}
\DoxyCodeLine{333     \textcolor{keyword}{allocate}(a(lb(2):ub(2), lb(1):ub(1), lb(3):ub(3), lb(4):ub(4)))}
\DoxyCodeLine{334   \textcolor{keywordflow}{else}}
\DoxyCodeLine{335     \textcolor{keyword}{allocate}(a(lb(1):ub(1), lb(2):ub(2), lb(3):ub(3), lb(4):ub(4)))}
\DoxyCodeLine{336 \textcolor{keywordflow}{  endif}}

\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}
