[5725] | 1 | \hypertarget{namespacemod__oasis__part}{}\section{mod\+\_\+oasis\+\_\+part Module Reference} |
---|
| 2 | \label{namespacemod__oasis__part}\index{mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}} |
---|
| 3 | |
---|
| 4 | |
---|
| 5 | O\+A\+S\+IS partition data and methods. |
---|
| 6 | |
---|
| 7 | |
---|
| 8 | \subsection*{Data Types} |
---|
| 9 | \begin{DoxyCompactItemize} |
---|
| 10 | \item |
---|
| 11 | type \hyperlink{structmod__oasis__part_1_1prism__part__type}{prism\+\_\+part\+\_\+type} |
---|
| 12 | \begin{DoxyCompactList}\small\item\em Partition (decomposition) data for variables. \end{DoxyCompactList}\end{DoxyCompactItemize} |
---|
| 13 | \subsection*{Functions/\+Subroutines} |
---|
| 14 | \begin{DoxyCompactItemize} |
---|
| 15 | \item |
---|
| 16 | subroutine, public \hyperlink{namespacemod__oasis__part_af070605328f2b705735d7fbf8b838ff4}{oasis\+\_\+def\+\_\+partition} (id\+\_\+part, kparal, kinfo, ig\+\_\+size, name) |
---|
| 17 | \begin{DoxyCompactList}\small\item\em The O\+A\+S\+IS user interface to define partitions. \end{DoxyCompactList}\item |
---|
| 18 | subroutine, public \hyperlink{namespacemod__oasis__part_a80f66cc0ce5857aa53d070861f05b521}{oasis\+\_\+part\+\_\+setup} () |
---|
| 19 | \begin{DoxyCompactList}\small\item\em Synchronize partitions across all tasks, called at oasis enddef. \end{DoxyCompactList}\item |
---|
| 20 | subroutine \hyperlink{namespacemod__oasis__part_a17c747bc29d25b558df42524bd63ac90}{oasis\+\_\+part\+\_\+zero} (s\+\_\+prism\+\_\+part) |
---|
| 21 | \begin{DoxyCompactList}\small\item\em Zero partition information. \end{DoxyCompactList}\item |
---|
| 22 | subroutine \hyperlink{namespacemod__oasis__part_a12edb4b0248a3f562fe5f6e16eede06a}{oasis\+\_\+part\+\_\+write} (s\+\_\+prism\+\_\+part, npart) |
---|
| 23 | \begin{DoxyCompactList}\small\item\em Print parition information. \end{DoxyCompactList}\item |
---|
| 24 | subroutine, public \hyperlink{namespacemod__oasis__part_aacc20c24f42edbef4ec2610bf98aadfc}{oasis\+\_\+part\+\_\+create} (id\+\_\+part, T\+Y\+PE, gsize, nx, ny, gridname, gscomm, mpicom, grid\+ID) |
---|
| 25 | \begin{DoxyCompactList}\small\item\em Create a new partition internally, needed for mapping. \end{DoxyCompactList}\end{DoxyCompactItemize} |
---|
| 26 | \subsection*{Variables} |
---|
| 27 | \begin{DoxyCompactItemize} |
---|
| 28 | \item |
---|
| 29 | integer(kind=ip\+\_\+intwp\+\_\+p), parameter \hyperlink{namespacemod__oasis__part_ab68d087792db0351181c9a97025d793b}{mpart} = 100 |
---|
| 30 | \begin{DoxyCompactList}\small\item\em maximum number of partitions allowed \end{DoxyCompactList}\item |
---|
| 31 | integer(kind=ip\+\_\+intwp\+\_\+p), public \hyperlink{namespacemod__oasis__part_ac8340e63b159a9786ad8fffabd1d47f8}{prism\+\_\+npart} = 0 |
---|
| 32 | \begin{DoxyCompactList}\small\item\em number of partitions defined \end{DoxyCompactList}\item |
---|
| 33 | type(\hyperlink{structmod__oasis__part_1_1prism__part__type}{prism\+\_\+part\+\_\+type}), dimension(\hyperlink{namespacemod__oasis__part_ab68d087792db0351181c9a97025d793b}{mpart}), public \hyperlink{namespacemod__oasis__part_a326ce52f630ba7e71905af864a6cb2dc}{prism\+\_\+part} |
---|
| 34 | \begin{DoxyCompactList}\small\item\em list of defined partitions \end{DoxyCompactList}\item |
---|
| 35 | integer(kind=ip\+\_\+intwp\+\_\+p) \hyperlink{namespacemod__oasis__part_a8cee930f023feb7bcad4a0cab0b490a1}{part\+\_\+name\+\_\+cnt} = 0 |
---|
| 36 | \begin{DoxyCompactList}\small\item\em used to define partition names internally \end{DoxyCompactList}\end{DoxyCompactItemize} |
---|
| 37 | |
---|
| 38 | |
---|
| 39 | \subsection{Detailed Description} |
---|
| 40 | O\+A\+S\+IS partition data and methods. |
---|
| 41 | |
---|
| 42 | \subsection{Function/\+Subroutine Documentation} |
---|
| 43 | \mbox{\Hypertarget{namespacemod__oasis__part_af070605328f2b705735d7fbf8b838ff4}\label{namespacemod__oasis__part_af070605328f2b705735d7fbf8b838ff4}} |
---|
| 44 | \index{mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}!oasis\+\_\+def\+\_\+partition@{oasis\+\_\+def\+\_\+partition}} |
---|
| 45 | \index{oasis\+\_\+def\+\_\+partition@{oasis\+\_\+def\+\_\+partition}!mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}} |
---|
| 46 | \subsubsection{\texorpdfstring{oasis\+\_\+def\+\_\+partition()}{oasis\_def\_partition()}} |
---|
| 47 | {\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+part\+::oasis\+\_\+def\+\_\+partition (\begin{DoxyParamCaption}\item[{integer(kind=ip\+\_\+intwp\+\_\+p), intent(out)}]{id\+\_\+part, }\item[{integer(kind=ip\+\_\+intwp\+\_\+p), dimension(\+:), intent(in)}]{kparal, }\item[{integer(kind=ip\+\_\+intwp\+\_\+p), intent(out), optional}]{kinfo, }\item[{integer(kind=ip\+\_\+intwp\+\_\+p), intent(in), optional}]{ig\+\_\+size, }\item[{character(len=$\ast$), intent(in), optional}]{name }\end{DoxyParamCaption})} |
---|
| 48 | |
---|
| 49 | |
---|
| 50 | |
---|
| 51 | The O\+A\+S\+IS user interface to define partitions. |
---|
| 52 | |
---|
| 53 | |
---|
| 54 | \begin{DoxyParams}[1]{Parameters} |
---|
| 55 | \mbox{\tt out} & {\em id\+\_\+part} & partition id\\ |
---|
| 56 | \hline |
---|
| 57 | \mbox{\tt in} & {\em kparal} & decomposition information\\ |
---|
| 58 | \hline |
---|
| 59 | \mbox{\tt out} & {\em kinfo} & return code\\ |
---|
| 60 | \hline |
---|
| 61 | \mbox{\tt in} & {\em ig\+\_\+size} & total size of partition\\ |
---|
| 62 | \hline |
---|
| 63 | \mbox{\tt in} & {\em name} & name of partition \\ |
---|
| 64 | \hline |
---|
| 65 | \end{DoxyParams} |
---|
| 66 | |
---|
| 67 | \begin{DoxyItemize} |
---|
| 68 | \item Increment partition number and store user values |
---|
| 69 | \end{DoxyItemize} |
---|
| 70 | |
---|
| 71 | Definition at line 60 of file mod\+\_\+oasis\+\_\+part.\+F90. |
---|
| 72 | |
---|
| 73 | \mbox{\Hypertarget{namespacemod__oasis__part_aacc20c24f42edbef4ec2610bf98aadfc}\label{namespacemod__oasis__part_aacc20c24f42edbef4ec2610bf98aadfc}} |
---|
| 74 | \index{mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}!oasis\+\_\+part\+\_\+create@{oasis\+\_\+part\+\_\+create}} |
---|
| 75 | \index{oasis\+\_\+part\+\_\+create@{oasis\+\_\+part\+\_\+create}!mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}} |
---|
| 76 | \subsubsection{\texorpdfstring{oasis\+\_\+part\+\_\+create()}{oasis\_part\_create()}} |
---|
| 77 | {\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+part\+::oasis\+\_\+part\+\_\+create (\begin{DoxyParamCaption}\item[{integer(ip\+\_\+i4\+\_\+p), intent(out)}]{id\+\_\+part, }\item[{character(len=$\ast$), intent(in)}]{T\+Y\+PE, }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{gsize, }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{nx, }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{ny, }\item[{character(len=$\ast$), intent(in)}]{gridname, }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{gscomm, }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{mpicom, }\item[{integer(ip\+\_\+i4\+\_\+p), dimension(\+:), optional}]{grid\+ID }\end{DoxyParamCaption})} |
---|
| 78 | |
---|
| 79 | |
---|
| 80 | |
---|
| 81 | Create a new partition internally, needed for mapping. |
---|
| 82 | |
---|
| 83 | |
---|
| 84 | \begin{DoxyParams}[1]{Parameters} |
---|
| 85 | \mbox{\tt out} & {\em id\+\_\+part} & partition id\\ |
---|
| 86 | \hline |
---|
| 87 | \mbox{\tt in} & {\em type} & type of decomposition specified\\ |
---|
| 88 | \hline |
---|
| 89 | \mbox{\tt in} & {\em gsize} & global size of grid\\ |
---|
| 90 | \hline |
---|
| 91 | \mbox{\tt in} & {\em nx} & global nx size\\ |
---|
| 92 | \hline |
---|
| 93 | \mbox{\tt in} & {\em ny} & global ny size\\ |
---|
| 94 | \hline |
---|
| 95 | \mbox{\tt in} & {\em gridname} & grid name\\ |
---|
| 96 | \hline |
---|
| 97 | \mbox{\tt in} & {\em gscomm} & global seg map communicator\\ |
---|
| 98 | \hline |
---|
| 99 | \mbox{\tt in} & {\em mpicom} & local mpi comm\\ |
---|
| 100 | \hline |
---|
| 101 | & {\em gridid} & gridcell ID \\ |
---|
| 102 | \hline |
---|
| 103 | \end{DoxyParams} |
---|
| 104 | |
---|
| 105 | \begin{DoxyItemize} |
---|
| 106 | \item Check if an existing gsmap can be reused |
---|
| 107 | \item Check that all tasks agree and if so, return with that partition id |
---|
| 108 | \item Instantiate a decomposition based on gsize and type |
---|
| 109 | \begin{DoxyItemize} |
---|
| 110 | \item Create a new partition and set values |
---|
| 111 | \item Initialize the partition gsmap and pgsmap |
---|
| 112 | \end{DoxyItemize} |
---|
| 113 | \end{DoxyItemize} |
---|
| 114 | |
---|
| 115 | Definition at line 444 of file mod\+\_\+oasis\+\_\+part.\+F90. |
---|
| 116 | |
---|
| 117 | \mbox{\Hypertarget{namespacemod__oasis__part_a80f66cc0ce5857aa53d070861f05b521}\label{namespacemod__oasis__part_a80f66cc0ce5857aa53d070861f05b521}} |
---|
| 118 | \index{mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}!oasis\+\_\+part\+\_\+setup@{oasis\+\_\+part\+\_\+setup}} |
---|
| 119 | \index{oasis\+\_\+part\+\_\+setup@{oasis\+\_\+part\+\_\+setup}!mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}} |
---|
| 120 | \subsubsection{\texorpdfstring{oasis\+\_\+part\+\_\+setup()}{oasis\_part\_setup()}} |
---|
| 121 | {\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+part\+::oasis\+\_\+part\+\_\+setup (\begin{DoxyParamCaption}{ }\end{DoxyParamCaption})} |
---|
| 122 | |
---|
| 123 | |
---|
| 124 | |
---|
| 125 | Synchronize partitions across all tasks, called at oasis enddef. |
---|
| 126 | |
---|
| 127 | |
---|
| 128 | \begin{DoxyItemize} |
---|
| 129 | \item Generate reduced partname list |
---|
| 130 | \item Define all partitions on all tasks |
---|
| 131 | \item Convert kparal information to data for the gsmap |
---|
| 132 | \item Initialize the local gsmap and partition gsmap |
---|
| 133 | \end{DoxyItemize} |
---|
| 134 | |
---|
| 135 | Definition at line 142 of file mod\+\_\+oasis\+\_\+part.\+F90. |
---|
| 136 | |
---|
| 137 | \mbox{\Hypertarget{namespacemod__oasis__part_a12edb4b0248a3f562fe5f6e16eede06a}\label{namespacemod__oasis__part_a12edb4b0248a3f562fe5f6e16eede06a}} |
---|
| 138 | \index{mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}!oasis\+\_\+part\+\_\+write@{oasis\+\_\+part\+\_\+write}} |
---|
| 139 | \index{oasis\+\_\+part\+\_\+write@{oasis\+\_\+part\+\_\+write}!mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}} |
---|
| 140 | \subsubsection{\texorpdfstring{oasis\+\_\+part\+\_\+write()}{oasis\_part\_write()}} |
---|
| 141 | {\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+part\+::oasis\+\_\+part\+\_\+write (\begin{DoxyParamCaption}\item[{type(\hyperlink{structmod__oasis__part_1_1prism__part__type}{prism\+\_\+part\+\_\+type}), intent(in)}]{s\+\_\+prism\+\_\+part, }\item[{integer(ip\+\_\+i4\+\_\+p), intent(in)}]{npart }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}} |
---|
| 142 | |
---|
| 143 | |
---|
| 144 | |
---|
| 145 | Print parition information. |
---|
| 146 | |
---|
| 147 | |
---|
| 148 | |
---|
| 149 | Definition at line 390 of file mod\+\_\+oasis\+\_\+part.\+F90. |
---|
| 150 | |
---|
| 151 | \mbox{\Hypertarget{namespacemod__oasis__part_a17c747bc29d25b558df42524bd63ac90}\label{namespacemod__oasis__part_a17c747bc29d25b558df42524bd63ac90}} |
---|
| 152 | \index{mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}!oasis\+\_\+part\+\_\+zero@{oasis\+\_\+part\+\_\+zero}} |
---|
| 153 | \index{oasis\+\_\+part\+\_\+zero@{oasis\+\_\+part\+\_\+zero}!mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}} |
---|
| 154 | \subsubsection{\texorpdfstring{oasis\+\_\+part\+\_\+zero()}{oasis\_part\_zero()}} |
---|
| 155 | {\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+part\+::oasis\+\_\+part\+\_\+zero (\begin{DoxyParamCaption}\item[{type(\hyperlink{structmod__oasis__part_1_1prism__part__type}{prism\+\_\+part\+\_\+type}), intent(inout)}]{s\+\_\+prism\+\_\+part }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}} |
---|
| 156 | |
---|
| 157 | |
---|
| 158 | |
---|
| 159 | Zero partition information. |
---|
| 160 | |
---|
| 161 | |
---|
| 162 | |
---|
| 163 | Definition at line 361 of file mod\+\_\+oasis\+\_\+part.\+F90. |
---|
| 164 | |
---|
| 165 | |
---|
| 166 | |
---|
| 167 | \subsection{Variable Documentation} |
---|
| 168 | \mbox{\Hypertarget{namespacemod__oasis__part_ab68d087792db0351181c9a97025d793b}\label{namespacemod__oasis__part_ab68d087792db0351181c9a97025d793b}} |
---|
| 169 | \index{mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}!mpart@{mpart}} |
---|
| 170 | \index{mpart@{mpart}!mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}} |
---|
| 171 | \subsubsection{\texorpdfstring{mpart}{mpart}} |
---|
| 172 | {\footnotesize\ttfamily integer(kind=ip\+\_\+intwp\+\_\+p), parameter mod\+\_\+oasis\+\_\+part\+::mpart = 100\hspace{0.3cm}{\ttfamily [private]}} |
---|
| 173 | |
---|
| 174 | |
---|
| 175 | |
---|
| 176 | maximum number of partitions allowed |
---|
| 177 | |
---|
| 178 | |
---|
| 179 | |
---|
| 180 | Definition at line 26 of file mod\+\_\+oasis\+\_\+part.\+F90. |
---|
| 181 | |
---|
| 182 | \mbox{\Hypertarget{namespacemod__oasis__part_a8cee930f023feb7bcad4a0cab0b490a1}\label{namespacemod__oasis__part_a8cee930f023feb7bcad4a0cab0b490a1}} |
---|
| 183 | \index{mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}!part\+\_\+name\+\_\+cnt@{part\+\_\+name\+\_\+cnt}} |
---|
| 184 | \index{part\+\_\+name\+\_\+cnt@{part\+\_\+name\+\_\+cnt}!mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}} |
---|
| 185 | \subsubsection{\texorpdfstring{part\+\_\+name\+\_\+cnt}{part\_name\_cnt}} |
---|
| 186 | {\footnotesize\ttfamily integer(kind=ip\+\_\+intwp\+\_\+p) mod\+\_\+oasis\+\_\+part\+::part\+\_\+name\+\_\+cnt = 0\hspace{0.3cm}{\ttfamily [private]}} |
---|
| 187 | |
---|
| 188 | |
---|
| 189 | |
---|
| 190 | used to define partition names internally |
---|
| 191 | |
---|
| 192 | |
---|
| 193 | |
---|
| 194 | Definition at line 51 of file mod\+\_\+oasis\+\_\+part.\+F90. |
---|
| 195 | |
---|
| 196 | \mbox{\Hypertarget{namespacemod__oasis__part_ac8340e63b159a9786ad8fffabd1d47f8}\label{namespacemod__oasis__part_ac8340e63b159a9786ad8fffabd1d47f8}} |
---|
| 197 | \index{mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}!prism\+\_\+npart@{prism\+\_\+npart}} |
---|
| 198 | \index{prism\+\_\+npart@{prism\+\_\+npart}!mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}} |
---|
| 199 | \subsubsection{\texorpdfstring{prism\+\_\+npart}{prism\_npart}} |
---|
| 200 | {\footnotesize\ttfamily integer(kind=ip\+\_\+intwp\+\_\+p), public mod\+\_\+oasis\+\_\+part\+::prism\+\_\+npart = 0} |
---|
| 201 | |
---|
| 202 | |
---|
| 203 | |
---|
| 204 | number of partitions defined |
---|
| 205 | |
---|
| 206 | |
---|
| 207 | |
---|
| 208 | Definition at line 46 of file mod\+\_\+oasis\+\_\+part.\+F90. |
---|
| 209 | |
---|
| 210 | \mbox{\Hypertarget{namespacemod__oasis__part_a326ce52f630ba7e71905af864a6cb2dc}\label{namespacemod__oasis__part_a326ce52f630ba7e71905af864a6cb2dc}} |
---|
| 211 | \index{mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}!prism\+\_\+part@{prism\+\_\+part}} |
---|
| 212 | \index{prism\+\_\+part@{prism\+\_\+part}!mod\+\_\+oasis\+\_\+part@{mod\+\_\+oasis\+\_\+part}} |
---|
| 213 | \subsubsection{\texorpdfstring{prism\+\_\+part}{prism\_part}} |
---|
| 214 | {\footnotesize\ttfamily type(\hyperlink{structmod__oasis__part_1_1prism__part__type}{prism\+\_\+part\+\_\+type}), dimension(\hyperlink{namespacemod__oasis__part_ab68d087792db0351181c9a97025d793b}{mpart}), public mod\+\_\+oasis\+\_\+part\+::prism\+\_\+part} |
---|
| 215 | |
---|
| 216 | |
---|
| 217 | |
---|
| 218 | list of defined partitions |
---|
| 219 | |
---|
| 220 | |
---|
| 221 | |
---|
| 222 | Definition at line 47 of file mod\+\_\+oasis\+\_\+part.\+F90. |
---|
| 223 | |
---|