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