\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{\tt in}  & {\em lb} & Lower index bounds of A\+\_\+in\\
\hline
\mbox{\tt in}  & {\em a\+\_\+in} & Reference array\\
\hline
\mbox{\tt in}  & {\em turns} & Number of quarter turns\\
\hline
\mbox{\tt 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}
342   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: lb(2)\textcolor{comment}{                  !< Lower index bounds of A\_in}
343   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: A\_in(lb(1):,lb(2):)\textcolor{comment}{    !< Reference array}
344   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{                  !< Number of quarter turns}
345   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{allocatable}, \textcolor{keywordtype}{intent(inout)} :: A(:,:)\textcolor{comment}{ !< Array on rotated index}
346 
347   \textcolor{keywordtype}{integer} :: ub(2)
348 
349   ub(:) = ubound(a\_in)
350 
351   \textcolor{keywordflow}{if} (modulo(turns, 2) /= 0) \textcolor{keywordflow}{then}
352     \textcolor{keyword}{allocate}(a(lb(2):ub(2), lb(1):ub(1)))
353   \textcolor{keywordflow}{else}
354     \textcolor{keyword}{allocate}(a(lb(1):ub(1), lb(2):ub(2)))
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{\tt in}  & {\em lb} & Lower index bounds of A\+\_\+in\\
\hline
\mbox{\tt in}  & {\em a\+\_\+in} & Reference array\\
\hline
\mbox{\tt in}  & {\em turns} & Number of quarter turns\\
\hline
\mbox{\tt 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}
282   \textcolor{comment}{! NOTE: lb must be declared before A\_in}
283   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: lb(2)\textcolor{comment}{                !< Lower index bounds of A\_in}
284   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)} :: A\_in(lb(1):, lb(2):)\textcolor{comment}{    !< Reference array}
285   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{                !< Number of quarter turns}
286   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}, \textcolor{keywordtype}{intent(inout)} :: A(:,:)\textcolor{comment}{  !< Array on rotated index}
287 
288   \textcolor{keywordtype}{integer} :: ub(2)
289 
290   ub(:) = ubound(a\_in)
291 
292   \textcolor{keywordflow}{if} (modulo(turns, 2) /= 0) \textcolor{keywordflow}{then}
293     \textcolor{keyword}{allocate}(a(lb(2):ub(2), lb(1):ub(1)))
294   \textcolor{keywordflow}{else}
295     \textcolor{keyword}{allocate}(a(lb(1):ub(1), lb(2):ub(2)))
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{\tt in}  & {\em lb} & Lower index bounds of A\+\_\+in\\
\hline
\mbox{\tt in}  & {\em a\+\_\+in} & Reference array\\
\hline
\mbox{\tt in}  & {\em turns} & Number of quarter turns\\
\hline
\mbox{\tt 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}
302   \textcolor{comment}{! NOTE: lb must be declared before A\_in}
303   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: lb(3)\textcolor{comment}{                    !< Lower index bounds of A\_in}
304   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)} :: A\_in(lb(1):, lb(2):, lb(3):)\textcolor{comment}{  !< Reference array}
305   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{                    !< Number of quarter turns}
306   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}, \textcolor{keywordtype}{intent(inout)} :: A(:,:,:)\textcolor{comment}{    !< Array on rotated index}
307 
308   \textcolor{keywordtype}{integer} :: ub(3)
309 
310   ub(:) = ubound(a\_in)
311 
312   \textcolor{keywordflow}{if} (modulo(turns, 2) /= 0) \textcolor{keywordflow}{then}
313     \textcolor{keyword}{allocate}(a(lb(2):ub(2), lb(1):ub(1), lb(3):ub(3)))
314   \textcolor{keywordflow}{else}
315     \textcolor{keyword}{allocate}(a(lb(1):ub(1), lb(2):ub(2), lb(3):ub(3)))
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{\tt in}  & {\em lb} & Lower index bounds of A\+\_\+in\\
\hline
\mbox{\tt in}  & {\em a\+\_\+in} & Reference array\\
\hline
\mbox{\tt in}  & {\em turns} & Number of quarter turns\\
\hline
\mbox{\tt 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}
322   \textcolor{comment}{! NOTE: lb must be declared before A\_in}
323   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: lb(4)\textcolor{comment}{                    !< Lower index bounds of A\_in}
324   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{intent(in)} :: A\_in(lb(1):,lb(2):,lb(3):,lb(4):)\textcolor{comment}{ !< Reference array}
325   \textcolor{keywordtype}{integer}, \textcolor{keywordtype}{intent(in)} :: turns\textcolor{comment}{                    !< Number of quarter turns}
326   \textcolor{keywordtype}{real}, \textcolor{keywordtype}{allocatable}, \textcolor{keywordtype}{intent(inout)} :: A(:,:,:,:)\textcolor{comment}{  !< Array on rotated index}
327 
328   \textcolor{keywordtype}{integer}:: ub(4)
329 
330   ub(:) = ubound(a\_in)
331 
332   \textcolor{keywordflow}{if} (modulo(turns, 2) /= 0) \textcolor{keywordflow}{then}
333     \textcolor{keyword}{allocate}(a(lb(2):ub(2), lb(1):ub(1), lb(3):ub(3), lb(4):ub(4)))
334   \textcolor{keywordflow}{else}
335     \textcolor{keyword}{allocate}(a(lb(1):ub(1), lb(2):ub(2), lb(3):ub(3), lb(4):ub(4)))
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}
