\hypertarget{namespacemod__oasis__mpi}{}\section{mod\+\_\+oasis\+\_\+mpi Module Reference}
\label{namespacemod__oasis__mpi}\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}


Provides a generic and simpler interface into M\+PI calls for O\+A\+S\+IS.  


\subsection*{Data Types}
\begin{DoxyCompactItemize}
\item 
interface \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__bcast}{oasis\+\_\+mpi\+\_\+bcast}
\begin{DoxyCompactList}\small\item\em Generic overloaded interface into M\+PI broadcast. \end{DoxyCompactList}\item 
interface \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__gatherv}{oasis\+\_\+mpi\+\_\+gatherv}
\begin{DoxyCompactList}\small\item\em Generic interfaces into an M\+PI vector gather. \end{DoxyCompactList}\item 
interface \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__gathscatvinit}{oasis\+\_\+mpi\+\_\+gathscatvinit}
\begin{DoxyCompactList}\small\item\em Generic interface to oasis\+\_\+mpi\+\_\+gath\+Scat\+V\+Init. \end{DoxyCompactList}\item 
interface \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__max}{oasis\+\_\+mpi\+\_\+max}
\begin{DoxyCompactList}\small\item\em Generic overloaded interface into M\+PI max reduction. \end{DoxyCompactList}\item 
interface \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__min}{oasis\+\_\+mpi\+\_\+min}
\begin{DoxyCompactList}\small\item\em Generic overloaded interface into M\+PI min reduction. \end{DoxyCompactList}\item 
interface \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__recv}{oasis\+\_\+mpi\+\_\+recv}
\begin{DoxyCompactList}\small\item\em Generic overloaded interface into M\+PI receive. \end{DoxyCompactList}\item 
interface \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__scatterv}{oasis\+\_\+mpi\+\_\+scatterv}
\begin{DoxyCompactList}\small\item\em Generic interfaces into an M\+PI vector scatter. \end{DoxyCompactList}\item 
interface \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__send}{oasis\+\_\+mpi\+\_\+send}
\begin{DoxyCompactList}\small\item\em Generic overloaded interface into M\+PI send. \end{DoxyCompactList}\item 
interface \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__sum}{oasis\+\_\+mpi\+\_\+sum}
\begin{DoxyCompactList}\small\item\em Generic overloaded interface into M\+PI sum reduction. \end{DoxyCompactList}\end{DoxyCompactItemize}
\subsection*{Functions/\+Subroutines}
\begin{DoxyCompactItemize}
\item 
subroutine, public \hyperlink{namespacemod__oasis__mpi_a15ba68764a1f4dd07d403e46afae824c}{oasis\+\_\+mpi\+\_\+chkerr} (rcode, string)
\begin{DoxyCompactList}\small\item\em Checks M\+PI error codes and aborts. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_aa5078962eee157f52878f711c0a29afb}{oasis\+\_\+mpi\+\_\+sendi0} (lvec, pid, tag, comm, string)
\begin{DoxyCompactList}\small\item\em Send a scalar integer. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_aab4cc0d2b50e8e73697e6d88d23b03cd}{oasis\+\_\+mpi\+\_\+sendi1} (lvec, pid, tag, comm, string)
\begin{DoxyCompactList}\small\item\em Send an array of 1D integers. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_ab38f15fbce57555ea66ccbc1aa477dd1}{oasis\+\_\+mpi\+\_\+sendr0} (lvec, pid, tag, comm, string)
\begin{DoxyCompactList}\small\item\em Send a scalar double. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a948cd001c0955ae19f4b410d4cca9f9b}{oasis\+\_\+mpi\+\_\+sendr1} (lvec, pid, tag, comm, string)
\begin{DoxyCompactList}\small\item\em Send an array of 1D doubles. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_ac8809a8b29b3ffa246612b9c25cd05eb}{oasis\+\_\+mpi\+\_\+sendr3} (array, pid, tag, comm, string)
\begin{DoxyCompactList}\small\item\em Send an array of 3D doubles. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_ad89796f10a2225d4930cdec65546cf98}{oasis\+\_\+mpi\+\_\+recvi0} (lvec, pid, tag, comm, string)
\begin{DoxyCompactList}\small\item\em Receive a scalar integer. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_acf13ea626ed09fe98123f23d0990879d}{oasis\+\_\+mpi\+\_\+recvi1} (lvec, pid, tag, comm, string)
\begin{DoxyCompactList}\small\item\em Receive an array of 1D integers. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a2578d560c80d608340b5a49b327642ba}{oasis\+\_\+mpi\+\_\+recvr0} (lvec, pid, tag, comm, string)
\begin{DoxyCompactList}\small\item\em Receive a scalar double. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a2bbd8de453167b4c73aa09c3c44c0ca8}{oasis\+\_\+mpi\+\_\+recvr1} (lvec, pid, tag, comm, string)
\begin{DoxyCompactList}\small\item\em Receive an array of 1D doubles. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a2c3b82d2346a69cd20be3d35c5e70be6}{oasis\+\_\+mpi\+\_\+recvr3} (array, pid, tag, comm, string)
\begin{DoxyCompactList}\small\item\em Receive an array of 3D doubles. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_af8bc029a22d59f1188b7f8a1a2645c40}{oasis\+\_\+mpi\+\_\+bcasti0} (vec, comm, string, pebcast)
\begin{DoxyCompactList}\small\item\em Broadcast a scalar integer. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a1426590a36b24f1770381b9c35563cff}{oasis\+\_\+mpi\+\_\+bcastl0} (vec, comm, string, pebcast)
\begin{DoxyCompactList}\small\item\em Broadcast a scalar logical. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a6d10e1673748a91dc7ec955ef16d771a}{oasis\+\_\+mpi\+\_\+bcastc0} (vec, comm, string, pebcast)
\begin{DoxyCompactList}\small\item\em Broadcast a character string. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a99b3a1ab4c7617b5bc83d3c6360aaef3}{oasis\+\_\+mpi\+\_\+bcastc1} (vec, comm, string, pebcast)
\begin{DoxyCompactList}\small\item\em Broadcast an array of 1D character strings. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a3b21bebef1b56b31bd6d07e83d7a59a6}{oasis\+\_\+mpi\+\_\+bcastr0} (vec, comm, string, pebcast)
\begin{DoxyCompactList}\small\item\em Broadcast a scalar double. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a6f9140637f29d3939dc9c53930101e2e}{oasis\+\_\+mpi\+\_\+bcasti1} (vec, comm, string, pebcast)
\begin{DoxyCompactList}\small\item\em Broadcast an array of 1D integers. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a8b03787549fba5faff499c946d521db0}{oasis\+\_\+mpi\+\_\+bcastl1} (vec, comm, string, pebcast)
\begin{DoxyCompactList}\small\item\em Broadcast an array of 1D logicals. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a6f12178b027ff30cb87f9f8313b459d5}{oasis\+\_\+mpi\+\_\+bcastr1} (vec, comm, string, pebcast)
\begin{DoxyCompactList}\small\item\em Broadcast an array of 1D doubles. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_ab14018fe59cd737067e4f4202a3eeb39}{oasis\+\_\+mpi\+\_\+bcastr2} (arr, comm, string, pebcast)
\begin{DoxyCompactList}\small\item\em Broadcast an array of 2D doubles. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_ad6918adccdd62a278066f41b0b8edf57}{oasis\+\_\+mpi\+\_\+bcasti2} (arr, comm, string, pebcast)
\begin{DoxyCompactList}\small\item\em Broadcast an array of 2D integers. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_ac01edbda3e33b1feff9b797f83f82e8c}{oasis\+\_\+mpi\+\_\+bcastr3} (arr, comm, string, pebcast)
\begin{DoxyCompactList}\small\item\em Broadcast an array of 3D doubles. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a68afb4ab4136545faeaa2c37a1eb294a}{oasis\+\_\+mpi\+\_\+gathscatvinitr1} (comm, rootid, loc\+Arr, glob1\+D\+Arr, glob\+Size, displs, string)
\begin{DoxyCompactList}\small\item\em Initialize variables for \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__gatherv}{oasis\+\_\+mpi\+\_\+gatherv} and \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__scatterv}{oasis\+\_\+mpi\+\_\+scatterv}. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a88a13ea3b4f96074669fdc872fe41728}{oasis\+\_\+mpi\+\_\+gathervr1} (locarr, loc\+Size, glob1\+D\+Arr, glob\+Size, displs, rootid, comm, string)
\begin{DoxyCompactList}\small\item\em Gather a vector of distributed data to a rootid. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a9d0d807b92d39c9789eea4744d331612}{oasis\+\_\+mpi\+\_\+scattervr1} (locarr, loc\+Size, glob1\+Darr, glob\+Size, displs, rootid, comm, string)
\begin{DoxyCompactList}\small\item\em Scatter a vector of global data from a rootid. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_adbb3963310e45ac012e5e28f13d5781e}{oasis\+\_\+mpi\+\_\+sumi0} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a global Sum for a scalar integer. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a507bb5e0ae088d68bb68c566e8965bef}{oasis\+\_\+mpi\+\_\+sumi1} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a 1D array of global sums for an array of 1D integers. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_ae4d2818f21f445e594aad97598f49d8e}{oasis\+\_\+mpi\+\_\+sumb0} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a global sum for a scalar 8 byte integer. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a3f32594b15b9ae3629969839ab952012}{oasis\+\_\+mpi\+\_\+sumb1} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a 1D array of global sums for an array of 1D 8 byte integers. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a02b0555479a3d54e1c3d42219af9b991}{oasis\+\_\+mpi\+\_\+sumr0} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a global sum for a scalar double. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_aac62148bc912b158aff769572f27b8d3}{oasis\+\_\+mpi\+\_\+sumr1} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a 1D array of global sums for an array of 1D doubles. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_afbc665ae71c97d0b0467323cd86a5973}{oasis\+\_\+mpi\+\_\+sumr2} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a 2D array of global sums for an array of 2D doubles. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a41836fe23aeb81e65b4d24f6f0c90953}{oasis\+\_\+mpi\+\_\+sumr3} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a 3D array of global sums for an array of 3D doubles. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a2901cf7eaf807b4df7bd82aefadfeed9}{oasis\+\_\+mpi\+\_\+sumq0} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a global sum for a scalar quad. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a4a81062f1345805cdd828552272670c8}{oasis\+\_\+mpi\+\_\+sumq1} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a 1D array of global sums for an array of 1D quads. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_aa9a5264e64523ff85ffb37ddc3b405ae}{oasis\+\_\+mpi\+\_\+sumq2} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a 2D array of global sums for an array of 2D quads. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a3f989a76dbe1896764d73ffea933130d}{oasis\+\_\+mpi\+\_\+sumq3} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a 3D array of global sums for an array of 3D quads. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a2832568cd4d34db40cdcc39ffa876474}{oasis\+\_\+mpi\+\_\+mini0} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a global minimum for a scalar integer. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_aed0c20d56fdab764f0ad8e48e3a7209f}{oasis\+\_\+mpi\+\_\+mini1} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute an array of global minimums for an array of 1D integers. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_af3628ad005b1a21e8f33e3dc2be38635}{oasis\+\_\+mpi\+\_\+minr0} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute an global minimum for a scalar double. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a29c460b836ae9ad77ee1ac21f684d188}{oasis\+\_\+mpi\+\_\+minr1} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute an array of global minimums for an array of 1D doubles. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a0b469347d40c78c317042fa069d9baa5}{oasis\+\_\+mpi\+\_\+maxi0} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a global maximum for a scalar integer. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a2ba8d76b016ddde4013aecc2ca0b1d9f}{oasis\+\_\+mpi\+\_\+maxi1} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute an array of global maximums for an array of 1D integers. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_a7f46e23956ff948e039c5c1cdde0f6f3}{oasis\+\_\+mpi\+\_\+maxr0} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute a global maximum for a scalar double. \end{DoxyCompactList}\item 
subroutine \hyperlink{namespacemod__oasis__mpi_ae57151fc4714e33d7e0e1cf0aa65ae64}{oasis\+\_\+mpi\+\_\+maxr1} (lvec, gvec, comm, string, all)
\begin{DoxyCompactList}\small\item\em Compute an array of global maximums for an array of 1D doubles. \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespacemod__oasis__mpi_adac784196d7af85611752214137dd4db}{oasis\+\_\+mpi\+\_\+commsize} (comm, size, string)
\begin{DoxyCompactList}\small\item\em Get the total number of tasks associated with a communicator. \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespacemod__oasis__mpi_a2690a841a331f4398cc4b5a244bbc52e}{oasis\+\_\+mpi\+\_\+commrank} (comm, rank, string)
\begin{DoxyCompactList}\small\item\em Get the rank (task ID) for a task in a communicator. \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespacemod__oasis__mpi_a384f170e63ac03f25d3bd549245b43f3}{oasis\+\_\+mpi\+\_\+initialized} (flag, string)
\begin{DoxyCompactList}\small\item\em Check whether M\+PI has been initialized. \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespacemod__oasis__mpi_aa3786c2cab131c3834583e7943ba28c8}{oasis\+\_\+mpi\+\_\+wtime} (wtime)
\begin{DoxyCompactList}\small\item\em Return a timestamp from M\+P\+I\+\_\+\+W\+T\+I\+ME. \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespacemod__oasis__mpi_a5b21b6d8732d5f7b70d8b20cefe0072f}{oasis\+\_\+mpi\+\_\+abort} (string, rcode)
\begin{DoxyCompactList}\small\item\em Write error messages and Call M\+P\+I\+\_\+\+A\+B\+O\+RT. \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespacemod__oasis__mpi_aaf477847380fbbbc1341520b0b3e66da}{oasis\+\_\+mpi\+\_\+barrier} (comm, string)
\begin{DoxyCompactList}\small\item\em Call M\+P\+I\+\_\+\+B\+A\+R\+R\+I\+ER for a particular communicator. \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespacemod__oasis__mpi_aaf45f20e0000b32e71ec9ea8e806f57c}{oasis\+\_\+mpi\+\_\+init} (string)
\begin{DoxyCompactList}\small\item\em Call M\+P\+I\+\_\+\+I\+N\+IT. \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespacemod__oasis__mpi_a0a601a3f718c0704db99a21b2c43fbcd}{oasis\+\_\+mpi\+\_\+finalize} (string)
\begin{DoxyCompactList}\small\item\em Call M\+P\+I\+\_\+\+F\+I\+N\+A\+L\+ZE. \end{DoxyCompactList}\item 
subroutine, public \hyperlink{namespacemod__oasis__mpi_a95f6540150f7ab4e64697d2eabc2bf79}{oasis\+\_\+mpi\+\_\+reducelists} (linp1, comm, cntout, lout1, callstr, fastcheck, fastcheckout, linp2, lout2, spval2, linp3, lout3, spval3, linp4, lout4, spval4)
\begin{DoxyCompactList}\small\item\em Custom method for reducing M\+PI lists across pes for O\+A\+S\+IS. \end{DoxyCompactList}\end{DoxyCompactItemize}


\subsection{Detailed Description}
Provides a generic and simpler interface into M\+PI calls for O\+A\+S\+IS. 

\subsection{Function/\+Subroutine Documentation}
\mbox{\Hypertarget{namespacemod__oasis__mpi_a5b21b6d8732d5f7b70d8b20cefe0072f}\label{namespacemod__oasis__mpi_a5b21b6d8732d5f7b70d8b20cefe0072f}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+abort@{oasis\+\_\+mpi\+\_\+abort}}
\index{oasis\+\_\+mpi\+\_\+abort@{oasis\+\_\+mpi\+\_\+abort}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+abort()}{oasis\_mpi\_abort()}}
{\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+abort (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in), optional}]{string,  }\item[{integer, intent(in), optional}]{rcode }\end{DoxyParamCaption})}



Write error messages and Call M\+P\+I\+\_\+\+A\+B\+O\+RT. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em rcode} & optional code \\
\hline
\end{DoxyParams}


Definition at line 2654 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_aaf477847380fbbbc1341520b0b3e66da}\label{namespacemod__oasis__mpi_aaf477847380fbbbc1341520b0b3e66da}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+barrier@{oasis\+\_\+mpi\+\_\+barrier}}
\index{oasis\+\_\+mpi\+\_\+barrier@{oasis\+\_\+mpi\+\_\+barrier}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+barrier()}{oasis\_mpi\_barrier()}}
{\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+barrier (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})}



Call M\+P\+I\+\_\+\+B\+A\+R\+R\+I\+ER for a particular communicator. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 2697 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a6d10e1673748a91dc7ec955ef16d771a}\label{namespacemod__oasis__mpi_a6d10e1673748a91dc7ec955ef16d771a}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+bcastc0@{oasis\+\_\+mpi\+\_\+bcastc0}}
\index{oasis\+\_\+mpi\+\_\+bcastc0@{oasis\+\_\+mpi\+\_\+bcastc0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+bcastc0()}{oasis\_mpi\_bcastc0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+bcastc0 (\begin{DoxyParamCaption}\item[{character(len=$\ast$), intent(inout)}]{vec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in), optional}]{pebcast }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Broadcast a character string. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em vec} & values to broadcast\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em pebcast} & bcast pe, default is task 0 \\
\hline
\end{DoxyParams}


Definition at line 659 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a99b3a1ab4c7617b5bc83d3c6360aaef3}\label{namespacemod__oasis__mpi_a99b3a1ab4c7617b5bc83d3c6360aaef3}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+bcastc1@{oasis\+\_\+mpi\+\_\+bcastc1}}
\index{oasis\+\_\+mpi\+\_\+bcastc1@{oasis\+\_\+mpi\+\_\+bcastc1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+bcastc1()}{oasis\_mpi\_bcastc1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+bcastc1 (\begin{DoxyParamCaption}\item[{character(len=$\ast$), dimension(\+:), intent(inout)}]{vec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in), optional}]{pebcast }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Broadcast an array of 1D character strings. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em vec} & values to broadcast\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em pebcast} & bcast pe, default is task 0 \\
\hline
\end{DoxyParams}


Definition at line 701 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_af8bc029a22d59f1188b7f8a1a2645c40}\label{namespacemod__oasis__mpi_af8bc029a22d59f1188b7f8a1a2645c40}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+bcasti0@{oasis\+\_\+mpi\+\_\+bcasti0}}
\index{oasis\+\_\+mpi\+\_\+bcasti0@{oasis\+\_\+mpi\+\_\+bcasti0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+bcasti0()}{oasis\_mpi\_bcasti0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+bcasti0 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), intent(inout)}]{vec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in), optional}]{pebcast }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Broadcast a scalar integer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em vec} & values to broadcast\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em pebcast} & bcast pe, default is task 0 \\
\hline
\end{DoxyParams}


Definition at line 575 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a6f9140637f29d3939dc9c53930101e2e}\label{namespacemod__oasis__mpi_a6f9140637f29d3939dc9c53930101e2e}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+bcasti1@{oasis\+\_\+mpi\+\_\+bcasti1}}
\index{oasis\+\_\+mpi\+\_\+bcasti1@{oasis\+\_\+mpi\+\_\+bcasti1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+bcasti1()}{oasis\_mpi\_bcasti1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+bcasti1 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), intent(inout)}]{vec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in), optional}]{pebcast }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Broadcast an array of 1D integers. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em vec} & values to broadcast\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em pebcast} & bcast pe, default is task 0 \\
\hline
\end{DoxyParams}


Definition at line 785 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_ad6918adccdd62a278066f41b0b8edf57}\label{namespacemod__oasis__mpi_ad6918adccdd62a278066f41b0b8edf57}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+bcasti2@{oasis\+\_\+mpi\+\_\+bcasti2}}
\index{oasis\+\_\+mpi\+\_\+bcasti2@{oasis\+\_\+mpi\+\_\+bcasti2}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+bcasti2()}{oasis\_mpi\_bcasti2()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+bcasti2 (\begin{DoxyParamCaption}\item[{integer, dimension(\+:,\+:), intent(inout)}]{arr,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in), optional}]{pebcast }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Broadcast an array of 2D integers. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em arr} & values to broadcast\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em pebcast} & bcast pe, default is task 0 \\
\hline
\end{DoxyParams}


Definition at line 955 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a1426590a36b24f1770381b9c35563cff}\label{namespacemod__oasis__mpi_a1426590a36b24f1770381b9c35563cff}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+bcastl0@{oasis\+\_\+mpi\+\_\+bcastl0}}
\index{oasis\+\_\+mpi\+\_\+bcastl0@{oasis\+\_\+mpi\+\_\+bcastl0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+bcastl0()}{oasis\_mpi\_bcastl0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+bcastl0 (\begin{DoxyParamCaption}\item[{logical, intent(inout)}]{vec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in), optional}]{pebcast }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Broadcast a scalar logical. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em vec} & values to broadcast\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em pebcast} & bcast pe, default is task 0 \\
\hline
\end{DoxyParams}


Definition at line 617 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a8b03787549fba5faff499c946d521db0}\label{namespacemod__oasis__mpi_a8b03787549fba5faff499c946d521db0}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+bcastl1@{oasis\+\_\+mpi\+\_\+bcastl1}}
\index{oasis\+\_\+mpi\+\_\+bcastl1@{oasis\+\_\+mpi\+\_\+bcastl1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+bcastl1()}{oasis\_mpi\_bcastl1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+bcastl1 (\begin{DoxyParamCaption}\item[{logical, dimension(\+:), intent(inout)}]{vec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in), optional}]{pebcast }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Broadcast an array of 1D logicals. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em vec} & values to broadcast\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em pebcast} & bcast pe, default is task 0 \\
\hline
\end{DoxyParams}


Definition at line 827 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a3b21bebef1b56b31bd6d07e83d7a59a6}\label{namespacemod__oasis__mpi_a3b21bebef1b56b31bd6d07e83d7a59a6}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+bcastr0@{oasis\+\_\+mpi\+\_\+bcastr0}}
\index{oasis\+\_\+mpi\+\_\+bcastr0@{oasis\+\_\+mpi\+\_\+bcastr0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+bcastr0()}{oasis\_mpi\_bcastr0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+bcastr0 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), intent(inout)}]{vec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in), optional}]{pebcast }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Broadcast a scalar double. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em vec} & values to broadcast\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em pebcast} & bcast pe, default is task 0 \\
\hline
\end{DoxyParams}


Definition at line 743 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a6f12178b027ff30cb87f9f8313b459d5}\label{namespacemod__oasis__mpi_a6f12178b027ff30cb87f9f8313b459d5}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+bcastr1@{oasis\+\_\+mpi\+\_\+bcastr1}}
\index{oasis\+\_\+mpi\+\_\+bcastr1@{oasis\+\_\+mpi\+\_\+bcastr1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+bcastr1()}{oasis\_mpi\_bcastr1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+bcastr1 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(inout)}]{vec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in), optional}]{pebcast }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Broadcast an array of 1D doubles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em vec} & values to broadcast\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em pebcast} & bcast pe, default is task 0 \\
\hline
\end{DoxyParams}


Definition at line 869 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_ab14018fe59cd737067e4f4202a3eeb39}\label{namespacemod__oasis__mpi_ab14018fe59cd737067e4f4202a3eeb39}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+bcastr2@{oasis\+\_\+mpi\+\_\+bcastr2}}
\index{oasis\+\_\+mpi\+\_\+bcastr2@{oasis\+\_\+mpi\+\_\+bcastr2}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+bcastr2()}{oasis\_mpi\_bcastr2()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+bcastr2 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:,\+:), intent(inout)}]{arr,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in), optional}]{pebcast }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Broadcast an array of 2D doubles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em arr} & values to broadcast\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em pebcast} & bcast pe, default is task 0 \\
\hline
\end{DoxyParams}


Definition at line 911 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_ac01edbda3e33b1feff9b797f83f82e8c}\label{namespacemod__oasis__mpi_ac01edbda3e33b1feff9b797f83f82e8c}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+bcastr3@{oasis\+\_\+mpi\+\_\+bcastr3}}
\index{oasis\+\_\+mpi\+\_\+bcastr3@{oasis\+\_\+mpi\+\_\+bcastr3}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+bcastr3()}{oasis\_mpi\_bcastr3()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+bcastr3 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:,\+:,\+:), intent(inout)}]{arr,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in), optional}]{pebcast }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Broadcast an array of 3D doubles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in,out}  & {\em arr} & values to broadcast\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em pebcast} & bcast pe, default is task 0 \\
\hline
\end{DoxyParams}


Definition at line 999 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a15ba68764a1f4dd07d403e46afae824c}\label{namespacemod__oasis__mpi_a15ba68764a1f4dd07d403e46afae824c}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+chkerr@{oasis\+\_\+mpi\+\_\+chkerr}}
\index{oasis\+\_\+mpi\+\_\+chkerr@{oasis\+\_\+mpi\+\_\+chkerr}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+chkerr()}{oasis\_mpi\_chkerr()}}
{\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+chkerr (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{rcode,  }\item[{character($\ast$), intent(in)}]{string }\end{DoxyParamCaption})}



Checks M\+PI error codes and aborts. 

This method compares rcode to M\+P\+I\+\_\+\+S\+U\+C\+C\+E\+SS. If rcode is an error, it queries M\+P\+I\+\_\+\+E\+R\+R\+O\+R\+\_\+\+S\+T\+R\+I\+NG for the error string associated with rcode, writes it out, and aborts with the string passed through the interface.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em rcode} & M\+PI error code\\
\hline
\mbox{\tt in}  & {\em string} & abort message \\
\hline
\end{DoxyParams}


Definition at line 135 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a2690a841a331f4398cc4b5a244bbc52e}\label{namespacemod__oasis__mpi_a2690a841a331f4398cc4b5a244bbc52e}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+commrank@{oasis\+\_\+mpi\+\_\+commrank}}
\index{oasis\+\_\+mpi\+\_\+commrank@{oasis\+\_\+mpi\+\_\+commrank}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+commrank()}{oasis\_mpi\_commrank()}}
{\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+commrank (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{comm,  }\item[{integer, intent(out)}]{rank,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})}



Get the rank (task ID) for a task in a communicator. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt out}  & {\em rank} & output task ID\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 2558 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_adac784196d7af85611752214137dd4db}\label{namespacemod__oasis__mpi_adac784196d7af85611752214137dd4db}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+commsize@{oasis\+\_\+mpi\+\_\+commsize}}
\index{oasis\+\_\+mpi\+\_\+commsize@{oasis\+\_\+mpi\+\_\+commsize}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+commsize()}{oasis\_mpi\_commsize()}}
{\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+commsize (\begin{DoxyParamCaption}\item[{integer, intent(in)}]{comm,  }\item[{integer, intent(out)}]{size,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})}



Get the total number of tasks associated with a communicator. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt out}  & {\em size} & output comm size\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 2523 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a0a601a3f718c0704db99a21b2c43fbcd}\label{namespacemod__oasis__mpi_a0a601a3f718c0704db99a21b2c43fbcd}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+finalize@{oasis\+\_\+mpi\+\_\+finalize}}
\index{oasis\+\_\+mpi\+\_\+finalize@{oasis\+\_\+mpi\+\_\+finalize}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+finalize()}{oasis\_mpi\_finalize()}}
{\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+finalize (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})}



Call M\+P\+I\+\_\+\+F\+I\+N\+A\+L\+ZE. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 2764 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a88a13ea3b4f96074669fdc872fe41728}\label{namespacemod__oasis__mpi_a88a13ea3b4f96074669fdc872fe41728}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+gathervr1@{oasis\+\_\+mpi\+\_\+gathervr1}}
\index{oasis\+\_\+mpi\+\_\+gathervr1@{oasis\+\_\+mpi\+\_\+gathervr1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+gathervr1()}{oasis\_mpi\_gathervr1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+gathervr1 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(in)}]{locarr,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{loc\+Size,  }\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(inout)}]{glob1\+D\+Arr,  }\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), intent(in)}]{glob\+Size,  }\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), intent(in)}]{displs,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{rootid,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Gather a vector of distributed data to a rootid. 

This method passes in glob1\+D\+Arr, glob\+Size, and displs computed in the \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__gathscatvinit}{oasis\+\_\+mpi\+\_\+gathscatvinit} routine and uses that information to gather the loc\+Arr into the glob1\+Darr on processor rootid in communicator comm.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em locarr} & Local array\\
\hline
\mbox{\tt in,out}  & {\em glob1darr} & Global 1D array to receive in on\\
\hline
\mbox{\tt in}  & {\em locsize} & Number to send from this PE\\
\hline
\mbox{\tt in}  & {\em globsize} & Number to receive from each PE\\
\hline
\mbox{\tt in}  & {\em displs} & Displacements for receives\\
\hline
\mbox{\tt in}  & {\em rootid} & M\+PI task to gather on\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 1142 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a68afb4ab4136545faeaa2c37a1eb294a}\label{namespacemod__oasis__mpi_a68afb4ab4136545faeaa2c37a1eb294a}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+gathscatvinitr1@{oasis\+\_\+mpi\+\_\+gathscatvinitr1}}
\index{oasis\+\_\+mpi\+\_\+gathscatvinitr1@{oasis\+\_\+mpi\+\_\+gathscatvinitr1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+gathscatvinitr1()}{oasis\_mpi\_gathscatvinitr1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+gathscatvinitr1 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{rootid,  }\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(in)}]{loc\+Arr,  }\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), pointer}]{glob1\+D\+Arr,  }\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), pointer}]{glob\+Size,  }\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), pointer}]{displs,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Initialize variables for \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__gatherv}{oasis\+\_\+mpi\+\_\+gatherv} and \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__scatterv}{oasis\+\_\+mpi\+\_\+scatterv}. 

This method initializes glob1\+D\+Arr, glob\+Size, and displs for use in the \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__gatherv}{oasis\+\_\+mpi\+\_\+gatherv} and \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__scatterv}{oasis\+\_\+mpi\+\_\+scatterv} routines. loc\+Arr is the distributed array to gather from or scatter to.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em rootid} & M\+PI task to gather/scatter on\\
\hline
\mbox{\tt in}  & {\em locarr} & Local array of distributed data\\
\hline
 & {\em glob1darr} & Global 1D array of gathered data\\
\hline
 & {\em globsize} & Size of each distributed piece\\
\hline
 & {\em displs} & Displacements for receive\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 1048 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_aaf45f20e0000b32e71ec9ea8e806f57c}\label{namespacemod__oasis__mpi_aaf45f20e0000b32e71ec9ea8e806f57c}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+init@{oasis\+\_\+mpi\+\_\+init}}
\index{oasis\+\_\+mpi\+\_\+init@{oasis\+\_\+mpi\+\_\+init}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+init()}{oasis\_mpi\_init()}}
{\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+init (\begin{DoxyParamCaption}\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})}



Call M\+P\+I\+\_\+\+I\+N\+IT. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 2731 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a384f170e63ac03f25d3bd549245b43f3}\label{namespacemod__oasis__mpi_a384f170e63ac03f25d3bd549245b43f3}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+initialized@{oasis\+\_\+mpi\+\_\+initialized}}
\index{oasis\+\_\+mpi\+\_\+initialized@{oasis\+\_\+mpi\+\_\+initialized}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+initialized()}{oasis\_mpi\_initialized()}}
{\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+initialized (\begin{DoxyParamCaption}\item[{logical, intent(out)}]{flag,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})}



Check whether M\+PI has been initialized. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em flag} & true if M\+P\+I\+\_\+\+I\+N\+I\+T\+I\+A\+L\+I\+Z\+ED has been called\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 2593 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a0b469347d40c78c317042fa069d9baa5}\label{namespacemod__oasis__mpi_a0b469347d40c78c317042fa069d9baa5}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+maxi0@{oasis\+\_\+mpi\+\_\+maxi0}}
\index{oasis\+\_\+mpi\+\_\+maxi0@{oasis\+\_\+mpi\+\_\+maxi0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+maxi0()}{oasis\_mpi\_maxi0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+maxi0 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a global maximum for a scalar integer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 2271 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a2ba8d76b016ddde4013aecc2ca0b1d9f}\label{namespacemod__oasis__mpi_a2ba8d76b016ddde4013aecc2ca0b1d9f}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+maxi1@{oasis\+\_\+mpi\+\_\+maxi1}}
\index{oasis\+\_\+mpi\+\_\+maxi1@{oasis\+\_\+mpi\+\_\+maxi1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+maxi1()}{oasis\_mpi\_maxi1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+maxi1 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), intent(in)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute an array of global maximums for an array of 1D integers. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 2334 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a7f46e23956ff948e039c5c1cdde0f6f3}\label{namespacemod__oasis__mpi_a7f46e23956ff948e039c5c1cdde0f6f3}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+maxr0@{oasis\+\_\+mpi\+\_\+maxr0}}
\index{oasis\+\_\+mpi\+\_\+maxr0@{oasis\+\_\+mpi\+\_\+maxr0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+maxr0()}{oasis\_mpi\_maxr0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+maxr0 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), intent(in)}]{lvec,  }\item[{real(ip\+\_\+double\+\_\+p), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a global maximum for a scalar double. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 2397 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_ae57151fc4714e33d7e0e1cf0aa65ae64}\label{namespacemod__oasis__mpi_ae57151fc4714e33d7e0e1cf0aa65ae64}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+maxr1@{oasis\+\_\+mpi\+\_\+maxr1}}
\index{oasis\+\_\+mpi\+\_\+maxr1@{oasis\+\_\+mpi\+\_\+maxr1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+maxr1()}{oasis\_mpi\_maxr1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+maxr1 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(in)}]{lvec,  }\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute an array of global maximums for an array of 1D doubles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 2460 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a2832568cd4d34db40cdcc39ffa876474}\label{namespacemod__oasis__mpi_a2832568cd4d34db40cdcc39ffa876474}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+mini0@{oasis\+\_\+mpi\+\_\+mini0}}
\index{oasis\+\_\+mpi\+\_\+mini0@{oasis\+\_\+mpi\+\_\+mini0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+mini0()}{oasis\_mpi\_mini0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+mini0 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a global minimum for a scalar integer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 2019 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_aed0c20d56fdab764f0ad8e48e3a7209f}\label{namespacemod__oasis__mpi_aed0c20d56fdab764f0ad8e48e3a7209f}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+mini1@{oasis\+\_\+mpi\+\_\+mini1}}
\index{oasis\+\_\+mpi\+\_\+mini1@{oasis\+\_\+mpi\+\_\+mini1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+mini1()}{oasis\_mpi\_mini1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+mini1 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), intent(in)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute an array of global minimums for an array of 1D integers. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 2082 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_af3628ad005b1a21e8f33e3dc2be38635}\label{namespacemod__oasis__mpi_af3628ad005b1a21e8f33e3dc2be38635}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+minr0@{oasis\+\_\+mpi\+\_\+minr0}}
\index{oasis\+\_\+mpi\+\_\+minr0@{oasis\+\_\+mpi\+\_\+minr0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+minr0()}{oasis\_mpi\_minr0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+minr0 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), intent(in)}]{lvec,  }\item[{real(ip\+\_\+double\+\_\+p), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute an global minimum for a scalar double. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 2145 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a29c460b836ae9ad77ee1ac21f684d188}\label{namespacemod__oasis__mpi_a29c460b836ae9ad77ee1ac21f684d188}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+minr1@{oasis\+\_\+mpi\+\_\+minr1}}
\index{oasis\+\_\+mpi\+\_\+minr1@{oasis\+\_\+mpi\+\_\+minr1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+minr1()}{oasis\_mpi\_minr1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+minr1 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(in)}]{lvec,  }\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute an array of global minimums for an array of 1D doubles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 2208 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_ad89796f10a2225d4930cdec65546cf98}\label{namespacemod__oasis__mpi_ad89796f10a2225d4930cdec65546cf98}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+recvi0@{oasis\+\_\+mpi\+\_\+recvi0}}
\index{oasis\+\_\+mpi\+\_\+recvi0@{oasis\+\_\+mpi\+\_\+recvi0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+recvi0()}{oasis\_mpi\_recvi0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+recvi0 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), intent(out)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{pid,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{tag,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Receive a scalar integer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em lvec} & receive values\\
\hline
\mbox{\tt in}  & {\em pid} & pid to recv from\\
\hline
\mbox{\tt in}  & {\em tag} & mpi tag\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 370 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_acf13ea626ed09fe98123f23d0990879d}\label{namespacemod__oasis__mpi_acf13ea626ed09fe98123f23d0990879d}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+recvi1@{oasis\+\_\+mpi\+\_\+recvi1}}
\index{oasis\+\_\+mpi\+\_\+recvi1@{oasis\+\_\+mpi\+\_\+recvi1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+recvi1()}{oasis\_mpi\_recvi1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+recvi1 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), intent(out)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{pid,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{tag,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Receive an array of 1D integers. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em lvec} & receive values\\
\hline
\mbox{\tt in}  & {\em pid} & pid to recv from\\
\hline
\mbox{\tt in}  & {\em tag} & mpi tag\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 411 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a2578d560c80d608340b5a49b327642ba}\label{namespacemod__oasis__mpi_a2578d560c80d608340b5a49b327642ba}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+recvr0@{oasis\+\_\+mpi\+\_\+recvr0}}
\index{oasis\+\_\+mpi\+\_\+recvr0@{oasis\+\_\+mpi\+\_\+recvr0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+recvr0()}{oasis\_mpi\_recvr0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+recvr0 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), intent(out)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{pid,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{tag,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Receive a scalar double. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em lvec} & receive values\\
\hline
\mbox{\tt in}  & {\em pid} & pid to recv from\\
\hline
\mbox{\tt in}  & {\em tag} & mpi tag\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 452 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a2bbd8de453167b4c73aa09c3c44c0ca8}\label{namespacemod__oasis__mpi_a2bbd8de453167b4c73aa09c3c44c0ca8}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+recvr1@{oasis\+\_\+mpi\+\_\+recvr1}}
\index{oasis\+\_\+mpi\+\_\+recvr1@{oasis\+\_\+mpi\+\_\+recvr1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+recvr1()}{oasis\_mpi\_recvr1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+recvr1 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(out)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{pid,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{tag,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Receive an array of 1D doubles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em lvec} & receive values\\
\hline
\mbox{\tt in}  & {\em pid} & pid to recv from\\
\hline
\mbox{\tt in}  & {\em tag} & mpi tag\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 493 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a2c3b82d2346a69cd20be3d35c5e70be6}\label{namespacemod__oasis__mpi_a2c3b82d2346a69cd20be3d35c5e70be6}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+recvr3@{oasis\+\_\+mpi\+\_\+recvr3}}
\index{oasis\+\_\+mpi\+\_\+recvr3@{oasis\+\_\+mpi\+\_\+recvr3}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+recvr3()}{oasis\_mpi\_recvr3()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+recvr3 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:,\+:,\+:), intent(out)}]{array,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{pid,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{tag,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Receive an array of 3D doubles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em array} & receive values\\
\hline
\mbox{\tt in}  & {\em pid} & pid to recv from\\
\hline
\mbox{\tt in}  & {\em tag} & mpi tag\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 534 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a95f6540150f7ab4e64697d2eabc2bf79}\label{namespacemod__oasis__mpi_a95f6540150f7ab4e64697d2eabc2bf79}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+reducelists@{oasis\+\_\+mpi\+\_\+reducelists}}
\index{oasis\+\_\+mpi\+\_\+reducelists@{oasis\+\_\+mpi\+\_\+reducelists}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+reducelists()}{oasis\_mpi\_reducelists()}}
{\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+reducelists (\begin{DoxyParamCaption}\item[{character($\ast$), dimension(\+:), intent(in), pointer}]{linp1,  }\item[{integer, intent(in)}]{comm,  }\item[{integer, intent(out)}]{cntout,  }\item[{character($\ast$), dimension(\+:), intent(inout), pointer}]{lout1,  }\item[{character($\ast$), intent(in)}]{callstr,  }\item[{logical, intent(in), optional}]{fastcheck,  }\item[{logical, intent(out), optional}]{fastcheckout,  }\item[{character($\ast$), dimension(\+:), intent(in), optional, pointer}]{linp2,  }\item[{character($\ast$), dimension(\+:), intent(inout), optional, pointer}]{lout2,  }\item[{character($\ast$), intent(in), optional}]{spval2,  }\item[{integer, dimension(\+:), intent(in), optional, pointer}]{linp3,  }\item[{integer, dimension(\+:), intent(inout), optional, pointer}]{lout3,  }\item[{integer, intent(in), optional}]{spval3,  }\item[{integer, dimension(\+:), intent(in), optional, pointer}]{linp4,  }\item[{integer, dimension(\+:), intent(inout), optional, pointer}]{lout4,  }\item[{integer, intent(in), optional}]{spval4 }\end{DoxyParamCaption})}



Custom method for reducing M\+PI lists across pes for O\+A\+S\+IS. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em linp1} & input list on each task\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt out}  & {\em cntout} & size of lout1 list\\
\hline
\mbox{\tt in,out}  & {\em lout1} & reduced output list, same on all tasks\\
\hline
\mbox{\tt in}  & {\em callstr} & to identify caller\\
\hline
\mbox{\tt in}  & {\em fastcheck} & run a fastcheck first\\
\hline
\mbox{\tt out}  & {\em fastcheckout} & true if fastcheck worked\\
\hline
\mbox{\tt in}  & {\em linp2} & input list on each task\\
\hline
\mbox{\tt in,out}  & {\em lout2} & reduced output list, same on all tasks\\
\hline
\mbox{\tt in}  & {\em spval2} & unset value for linp2\\
\hline
\mbox{\tt in}  & {\em linp3} & input list on each task\\
\hline
\mbox{\tt in,out}  & {\em lout3} & reduced output list, same on all tasks\\
\hline
\mbox{\tt in}  & {\em spval3} & unset value for linp3\\
\hline
\mbox{\tt in}  & {\em linp4} & input list on each task\\
\hline
\mbox{\tt in,out}  & {\em lout4} & reduced output list, same on all tasks\\
\hline
\mbox{\tt in}  & {\em spval4} & unset value for linp4 \\
\hline
\end{DoxyParams}

\begin{DoxyItemize}
\item Check argument consistency
\item Fast compare on all tasks
\item Generate initial unique local name list
\item Log2 reduction of linp over tasks to root
\begin{DoxyItemize}
\item Send list
\item Recv list
\item Determine the unique list
\end{DoxyItemize}
\item Broadcast the list information to all tasks from root 
\end{DoxyItemize}

Definition at line 2798 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a9d0d807b92d39c9789eea4744d331612}\label{namespacemod__oasis__mpi_a9d0d807b92d39c9789eea4744d331612}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+scattervr1@{oasis\+\_\+mpi\+\_\+scattervr1}}
\index{oasis\+\_\+mpi\+\_\+scattervr1@{oasis\+\_\+mpi\+\_\+scattervr1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+scattervr1()}{oasis\_mpi\_scattervr1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+scattervr1 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(out)}]{locarr,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{loc\+Size,  }\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(in)}]{glob1\+Darr,  }\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), intent(in)}]{glob\+Size,  }\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), intent(in)}]{displs,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{rootid,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Scatter a vector of global data from a rootid. 

This method passes in glob1\+D\+Arr, glob\+Size, and displs computed in the \hyperlink{interfacemod__oasis__mpi_1_1oasis__mpi__gathscatvinit}{oasis\+\_\+mpi\+\_\+gathscatvinit} routine and uses that information to scatter glob1\+Darr on processor rootid in communicator comm to locarr on other processors.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em locarr} & Local array\\
\hline
\mbox{\tt in}  & {\em glob1darr} & Global 1D array to send from\\
\hline
\mbox{\tt in}  & {\em locsize} & Number to receive this PE\\
\hline
\mbox{\tt in}  & {\em globsize} & Number to send to each PE\\
\hline
\mbox{\tt in}  & {\em displs} & Displacements for send\\
\hline
\mbox{\tt in}  & {\em rootid} & M\+PI task to scatter on\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 1191 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_aa5078962eee157f52878f711c0a29afb}\label{namespacemod__oasis__mpi_aa5078962eee157f52878f711c0a29afb}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sendi0@{oasis\+\_\+mpi\+\_\+sendi0}}
\index{oasis\+\_\+mpi\+\_\+sendi0@{oasis\+\_\+mpi\+\_\+sendi0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sendi0()}{oasis\_mpi\_sendi0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sendi0 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{pid,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{tag,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Send a scalar integer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & send value\\
\hline
\mbox{\tt in}  & {\em pid} & pid to send to\\
\hline
\mbox{\tt in}  & {\em tag} & mpi tag\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 170 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_aab4cc0d2b50e8e73697e6d88d23b03cd}\label{namespacemod__oasis__mpi_aab4cc0d2b50e8e73697e6d88d23b03cd}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sendi1@{oasis\+\_\+mpi\+\_\+sendi1}}
\index{oasis\+\_\+mpi\+\_\+sendi1@{oasis\+\_\+mpi\+\_\+sendi1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sendi1()}{oasis\_mpi\_sendi1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sendi1 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), intent(in)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{pid,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{tag,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Send an array of 1D integers. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & send values\\
\hline
\mbox{\tt in}  & {\em pid} & pid to send to\\
\hline
\mbox{\tt in}  & {\em tag} & mpi tag\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 210 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_ab38f15fbce57555ea66ccbc1aa477dd1}\label{namespacemod__oasis__mpi_ab38f15fbce57555ea66ccbc1aa477dd1}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sendr0@{oasis\+\_\+mpi\+\_\+sendr0}}
\index{oasis\+\_\+mpi\+\_\+sendr0@{oasis\+\_\+mpi\+\_\+sendr0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sendr0()}{oasis\_mpi\_sendr0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sendr0 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), intent(in)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{pid,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{tag,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Send a scalar double. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & send values\\
\hline
\mbox{\tt in}  & {\em pid} & pid to send to\\
\hline
\mbox{\tt in}  & {\em tag} & mpi tag\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 250 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a948cd001c0955ae19f4b410d4cca9f9b}\label{namespacemod__oasis__mpi_a948cd001c0955ae19f4b410d4cca9f9b}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sendr1@{oasis\+\_\+mpi\+\_\+sendr1}}
\index{oasis\+\_\+mpi\+\_\+sendr1@{oasis\+\_\+mpi\+\_\+sendr1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sendr1()}{oasis\_mpi\_sendr1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sendr1 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(in)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{pid,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{tag,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Send an array of 1D doubles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & send values\\
\hline
\mbox{\tt in}  & {\em pid} & pid to send to\\
\hline
\mbox{\tt in}  & {\em tag} & mpi tag\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 290 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_ac8809a8b29b3ffa246612b9c25cd05eb}\label{namespacemod__oasis__mpi_ac8809a8b29b3ffa246612b9c25cd05eb}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sendr3@{oasis\+\_\+mpi\+\_\+sendr3}}
\index{oasis\+\_\+mpi\+\_\+sendr3@{oasis\+\_\+mpi\+\_\+sendr3}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sendr3()}{oasis\_mpi\_sendr3()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sendr3 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:,\+:,\+:), intent(in)}]{array,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{pid,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{tag,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Send an array of 3D doubles. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em array} & send values\\
\hline
\mbox{\tt in}  & {\em pid} & pid to send to\\
\hline
\mbox{\tt in}  & {\em tag} & mpi tag\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller \\
\hline
\end{DoxyParams}


Definition at line 330 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_ae4d2818f21f445e594aad97598f49d8e}\label{namespacemod__oasis__mpi_ae4d2818f21f445e594aad97598f49d8e}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sumb0@{oasis\+\_\+mpi\+\_\+sumb0}}
\index{oasis\+\_\+mpi\+\_\+sumb0@{oasis\+\_\+mpi\+\_\+sumb0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sumb0()}{oasis\_mpi\_sumb0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sumb0 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i8\+\_\+p), intent(in)}]{lvec,  }\item[{integer(ip\+\_\+i8\+\_\+p), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a global sum for a scalar 8 byte integer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 1364 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a3f32594b15b9ae3629969839ab952012}\label{namespacemod__oasis__mpi_a3f32594b15b9ae3629969839ab952012}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sumb1@{oasis\+\_\+mpi\+\_\+sumb1}}
\index{oasis\+\_\+mpi\+\_\+sumb1@{oasis\+\_\+mpi\+\_\+sumb1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sumb1()}{oasis\_mpi\_sumb1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sumb1 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i8\+\_\+p), dimension(\+:), intent(in)}]{lvec,  }\item[{integer(ip\+\_\+i8\+\_\+p), dimension(\+:), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a 1D array of global sums for an array of 1D 8 byte integers. 

This sums an array of local integers to an array of summed integers. This does not reduce the array to a scalar.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 1430 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_adbb3963310e45ac012e5e28f13d5781e}\label{namespacemod__oasis__mpi_adbb3963310e45ac012e5e28f13d5781e}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sumi0@{oasis\+\_\+mpi\+\_\+sumi0}}
\index{oasis\+\_\+mpi\+\_\+sumi0@{oasis\+\_\+mpi\+\_\+sumi0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sumi0()}{oasis\_mpi\_sumi0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sumi0 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a global Sum for a scalar integer. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 1235 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a507bb5e0ae088d68bb68c566e8965bef}\label{namespacemod__oasis__mpi_a507bb5e0ae088d68bb68c566e8965bef}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sumi1@{oasis\+\_\+mpi\+\_\+sumi1}}
\index{oasis\+\_\+mpi\+\_\+sumi1@{oasis\+\_\+mpi\+\_\+sumi1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sumi1()}{oasis\_mpi\_sumi1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sumi1 (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), intent(in)}]{lvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a 1D array of global sums for an array of 1D integers. 

This sums an array of local integers to an array of summed integers. This does not reduce the array to a scalar.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 1301 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a2901cf7eaf807b4df7bd82aefadfeed9}\label{namespacemod__oasis__mpi_a2901cf7eaf807b4df7bd82aefadfeed9}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sumq0@{oasis\+\_\+mpi\+\_\+sumq0}}
\index{oasis\+\_\+mpi\+\_\+sumq0@{oasis\+\_\+mpi\+\_\+sumq0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sumq0()}{oasis\_mpi\_sumq0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sumq0 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+quad\+\_\+p), intent(in)}]{lvec,  }\item[{real(ip\+\_\+quad\+\_\+p), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a global sum for a scalar quad. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 1756 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a4a81062f1345805cdd828552272670c8}\label{namespacemod__oasis__mpi_a4a81062f1345805cdd828552272670c8}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sumq1@{oasis\+\_\+mpi\+\_\+sumq1}}
\index{oasis\+\_\+mpi\+\_\+sumq1@{oasis\+\_\+mpi\+\_\+sumq1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sumq1()}{oasis\_mpi\_sumq1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sumq1 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+quad\+\_\+p), dimension(\+:), intent(in)}]{lvec,  }\item[{real(ip\+\_\+quad\+\_\+p), dimension(\+:), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a 1D array of global sums for an array of 1D quads. 

This sums an array of local quads to an array of summed quads. This does not reduce the array to a scalar.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 1822 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_aa9a5264e64523ff85ffb37ddc3b405ae}\label{namespacemod__oasis__mpi_aa9a5264e64523ff85ffb37ddc3b405ae}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sumq2@{oasis\+\_\+mpi\+\_\+sumq2}}
\index{oasis\+\_\+mpi\+\_\+sumq2@{oasis\+\_\+mpi\+\_\+sumq2}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sumq2()}{oasis\_mpi\_sumq2()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sumq2 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+quad\+\_\+p), dimension(\+:,\+:), intent(in)}]{lvec,  }\item[{real(ip\+\_\+quad\+\_\+p), dimension(\+:,\+:), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a 2D array of global sums for an array of 2D quads. 

This sums an array of local quads to an array of summed quads. This does not reduce the array to a scalar.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 1888 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a3f989a76dbe1896764d73ffea933130d}\label{namespacemod__oasis__mpi_a3f989a76dbe1896764d73ffea933130d}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sumq3@{oasis\+\_\+mpi\+\_\+sumq3}}
\index{oasis\+\_\+mpi\+\_\+sumq3@{oasis\+\_\+mpi\+\_\+sumq3}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sumq3()}{oasis\_mpi\_sumq3()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sumq3 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+quad\+\_\+p), dimension(\+:,\+:,\+:), intent(in)}]{lvec,  }\item[{real(ip\+\_\+quad\+\_\+p), dimension(\+:,\+:,\+:), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a 3D array of global sums for an array of 3D quads. 

This sums an array of local quads to an array of summed quads. This does not reduce the array to a scalar.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 1954 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a02b0555479a3d54e1c3d42219af9b991}\label{namespacemod__oasis__mpi_a02b0555479a3d54e1c3d42219af9b991}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sumr0@{oasis\+\_\+mpi\+\_\+sumr0}}
\index{oasis\+\_\+mpi\+\_\+sumr0@{oasis\+\_\+mpi\+\_\+sumr0}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sumr0()}{oasis\_mpi\_sumr0()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sumr0 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), intent(in)}]{lvec,  }\item[{real(ip\+\_\+double\+\_\+p), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a global sum for a scalar double. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 1493 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_aac62148bc912b158aff769572f27b8d3}\label{namespacemod__oasis__mpi_aac62148bc912b158aff769572f27b8d3}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sumr1@{oasis\+\_\+mpi\+\_\+sumr1}}
\index{oasis\+\_\+mpi\+\_\+sumr1@{oasis\+\_\+mpi\+\_\+sumr1}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sumr1()}{oasis\_mpi\_sumr1()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sumr1 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(in)}]{lvec,  }\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a 1D array of global sums for an array of 1D doubles. 

This sums an array of local doubles to an array of summed doubles. This does not reduce the array to a scalar.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 1559 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_afbc665ae71c97d0b0467323cd86a5973}\label{namespacemod__oasis__mpi_afbc665ae71c97d0b0467323cd86a5973}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sumr2@{oasis\+\_\+mpi\+\_\+sumr2}}
\index{oasis\+\_\+mpi\+\_\+sumr2@{oasis\+\_\+mpi\+\_\+sumr2}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sumr2()}{oasis\_mpi\_sumr2()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sumr2 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:,\+:), intent(in)}]{lvec,  }\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:,\+:), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a 2D array of global sums for an array of 2D doubles. 

This sums an array of local doubles to an array of summed doubles. This does not reduce the array to a scalar.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 1625 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_a41836fe23aeb81e65b4d24f6f0c90953}\label{namespacemod__oasis__mpi_a41836fe23aeb81e65b4d24f6f0c90953}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+sumr3@{oasis\+\_\+mpi\+\_\+sumr3}}
\index{oasis\+\_\+mpi\+\_\+sumr3@{oasis\+\_\+mpi\+\_\+sumr3}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+sumr3()}{oasis\_mpi\_sumr3()}}
{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+sumr3 (\begin{DoxyParamCaption}\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:,\+:,\+:), intent(in)}]{lvec,  }\item[{real(ip\+\_\+double\+\_\+p), dimension(\+:,\+:,\+:), intent(out)}]{gvec,  }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{comm,  }\item[{character($\ast$), intent(in), optional}]{string,  }\item[{logical, intent(in), optional}]{all }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}



Compute a 3D array of global sums for an array of 3D doubles. 

This sums an array of local doubles to an array of summed doubles. This does not reduce the array to a scalar.


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt in}  & {\em lvec} & local values\\
\hline
\mbox{\tt out}  & {\em gvec} & global values\\
\hline
\mbox{\tt in}  & {\em comm} & mpi communicator\\
\hline
\mbox{\tt in}  & {\em string} & to identify caller\\
\hline
\mbox{\tt in}  & {\em all} & if true call allreduce, otherwise reduce to task 0 \\
\hline
\end{DoxyParams}


Definition at line 1691 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

\mbox{\Hypertarget{namespacemod__oasis__mpi_aa3786c2cab131c3834583e7943ba28c8}\label{namespacemod__oasis__mpi_aa3786c2cab131c3834583e7943ba28c8}} 
\index{mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}!oasis\+\_\+mpi\+\_\+wtime@{oasis\+\_\+mpi\+\_\+wtime}}
\index{oasis\+\_\+mpi\+\_\+wtime@{oasis\+\_\+mpi\+\_\+wtime}!mod\+\_\+oasis\+\_\+mpi@{mod\+\_\+oasis\+\_\+mpi}}
\subsubsection{\texorpdfstring{oasis\+\_\+mpi\+\_\+wtime()}{oasis\_mpi\_wtime()}}
{\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+mpi\+::oasis\+\_\+mpi\+\_\+wtime (\begin{DoxyParamCaption}\item[{real(ip\+\_\+r8\+\_\+p), intent(out)}]{wtime }\end{DoxyParamCaption})}



Return a timestamp from M\+P\+I\+\_\+\+W\+T\+I\+ME. 


\begin{DoxyParams}[1]{Parameters}
\mbox{\tt out}  & {\em wtime} & time in M\+P\+I\+\_\+\+W\+T\+I\+ME units \\
\hline
\end{DoxyParams}


Definition at line 2627 of file mod\+\_\+oasis\+\_\+mpi.\+F90.

