source: CPL/oasis3-mct/branches/OASIS3-MCT_5.0_branch/doc/doxygen/latex/namespacemod__oasis__advance.tex

Last change on this file was 6331, checked in by aclsce, 17 months ago

Moved oasis-mct_5.0 in oasis3-mct/branches directory.

File size: 15.2 KB
Line 
1\hypertarget{namespacemod__oasis__advance}{}\section{mod\+\_\+oasis\+\_\+advance Module Reference}
2\label{namespacemod__oasis__advance}\index{mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}}
3
4
5Advances the O\+A\+S\+IS coupling. 
6
7
8\subsection*{Functions/\+Subroutines}
9\begin{DoxyCompactItemize}
10\item 
11subroutine, public \hyperlink{namespacemod__oasis__advance_a480bfe5b333300c1084af8f9c239a81d}{oasis\+\_\+advance\+\_\+init} (kinfo)
12\begin{DoxyCompactList}\small\item\em Initializes the O\+A\+S\+IS fields. \end{DoxyCompactList}\item 
13subroutine, public \hyperlink{namespacemod__oasis__advance_a932b0cbe5d1f5fa27c283c6472be7baf}{oasis\+\_\+advance\+\_\+run} (mop, varid, msec, kinfo, nff, namid, array1din, array1dout, array2dout, readrest, a2on, array2, a3on, array3, a4on, array4, a5on, array5, writrest, varnum)
14\begin{DoxyCompactList}\small\item\em Advances the O\+A\+S\+IS coupling. \end{DoxyCompactList}\item 
15subroutine \hyperlink{namespacemod__oasis__advance_a0514c843d051b8ee16adfb349eaee6a7}{oasis\+\_\+advance\+\_\+map} (av1, avd, mapper, conserv, consopt, avon, av2, av3, av4, av5, tstrinp)
16\begin{DoxyCompactList}\small\item\em Provides interpolation functionality. \end{DoxyCompactList}\item 
17subroutine \hyperlink{namespacemod__oasis__advance_acf8f4a02082ba2d9f32f0835ad14e11d}{oasis\+\_\+advance\+\_\+avsum} (av, sum, gsmap, mpicom, mask, wts, consopt)
18\begin{DoxyCompactList}\small\item\em A generic method for summing fields in an attribute vector. \end{DoxyCompactList}\item 
19subroutine \hyperlink{namespacemod__oasis__advance_af611b26fe4601ded488fd5d3c03b12a2}{oasis\+\_\+advance\+\_\+avdiag} (av, mpicom, mask, wts)
20\begin{DoxyCompactList}\small\item\em A generic method for writing the global sums of fields in an attribute vector. \end{DoxyCompactList}\end{DoxyCompactItemize}
21\subsection*{Variables}
22\begin{DoxyCompactItemize}
23\item 
24logical, parameter \hyperlink{namespacemod__oasis__advance_ac617024af9299c27eaeb9156f647b028}{map\+\_\+barrier} = .false.
25\item 
26logical, parameter \hyperlink{namespacemod__oasis__advance_aad8e5c2e16b0270a7da0800a14ae1e07}{detailed\+\_\+map\+\_\+timing} = .false.
27\end{DoxyCompactItemize}
28
29
30\subsection{Detailed Description}
31Advances the O\+A\+S\+IS coupling.
32
33\subsection{Function/\+Subroutine Documentation}
34\mbox{\Hypertarget{namespacemod__oasis__advance_af611b26fe4601ded488fd5d3c03b12a2}\label{namespacemod__oasis__advance_af611b26fe4601ded488fd5d3c03b12a2}} 
35\index{mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}!oasis\+\_\+advance\+\_\+avdiag@{oasis\+\_\+advance\+\_\+avdiag}}
36\index{oasis\+\_\+advance\+\_\+avdiag@{oasis\+\_\+advance\+\_\+avdiag}!mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}}
37\subsubsection{\texorpdfstring{oasis\+\_\+advance\+\_\+avdiag()}{oasis\_advance\_avdiag()}}
38{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+advance\+::oasis\+\_\+advance\+\_\+avdiag (\begin{DoxyParamCaption}\item[{type(mct\+\_\+avect), intent(in)}]{av,  }\item[{integer(kind=ip\+\_\+i4\+\_\+p), intent(in)}]{mpicom,  }\item[{integer(kind=ip\+\_\+i4\+\_\+p), dimension(\+:), intent(in), optional}]{mask,  }\item[{real(kind=ip\+\_\+r8\+\_\+p), dimension(\+:), intent(in), optional}]{wts }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
39
40
41
42A generic method for writing the global sums of fields in an attribute vector.
43
44
45
46Definition at line 2150 of file mod\+\_\+oasis\+\_\+advance.\+F90.
47
48\mbox{\Hypertarget{namespacemod__oasis__advance_acf8f4a02082ba2d9f32f0835ad14e11d}\label{namespacemod__oasis__advance_acf8f4a02082ba2d9f32f0835ad14e11d}} 
49\index{mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}!oasis\+\_\+advance\+\_\+avsum@{oasis\+\_\+advance\+\_\+avsum}}
50\index{oasis\+\_\+advance\+\_\+avsum@{oasis\+\_\+advance\+\_\+avsum}!mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}}
51\subsubsection{\texorpdfstring{oasis\+\_\+advance\+\_\+avsum()}{oasis\_advance\_avsum()}}
52{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+advance\+::oasis\+\_\+advance\+\_\+avsum (\begin{DoxyParamCaption}\item[{type(mct\+\_\+avect), intent(in)}]{av,  }\item[{real(kind=ip\+\_\+r8\+\_\+p), dimension(\+:), intent(inout)}]{sum,  }\item[{type(mct\+\_\+gsmap), intent(in)}]{gsmap,  }\item[{integer(kind=ip\+\_\+i4\+\_\+p), intent(in)}]{mpicom,  }\item[{integer(kind=ip\+\_\+i4\+\_\+p), dimension(\+:), intent(in), optional}]{mask,  }\item[{real(kind=ip\+\_\+r8\+\_\+p), dimension(\+:), intent(in), optional}]{wts,  }\item[{character(len=ic\+\_\+med), intent(in), optional}]{consopt }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
53
54
55
56A generic method for summing fields in an attribute vector.
57
58
59
60Definition at line 2002 of file mod\+\_\+oasis\+\_\+advance.\+F90.
61
62\mbox{\Hypertarget{namespacemod__oasis__advance_a480bfe5b333300c1084af8f9c239a81d}\label{namespacemod__oasis__advance_a480bfe5b333300c1084af8f9c239a81d}} 
63\index{mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}!oasis\+\_\+advance\+\_\+init@{oasis\+\_\+advance\+\_\+init}}
64\index{oasis\+\_\+advance\+\_\+init@{oasis\+\_\+advance\+\_\+init}!mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}}
65\subsubsection{\texorpdfstring{oasis\+\_\+advance\+\_\+init()}{oasis\_advance\_init()}}
66{\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+advance\+::oasis\+\_\+advance\+\_\+init (\begin{DoxyParamCaption}\item[{integer(kind=ip\+\_\+i4\+\_\+p), intent(inout)}]{kinfo }\end{DoxyParamCaption})}
67
68
69
70Initializes the O\+A\+S\+IS fields.
71
72
73\begin{DoxyParams}[1]{Parameters}
74\mbox{\tt in,out}  & {\em kinfo} & status, not used \\
75\hline
76\end{DoxyParams}
77oasis\+\_\+advance\+\_\+init does the following
78\begin{DoxyItemize}
79\item Aborts if it\textquotesingle{}s called from non-\/active tasks
80\item Loop over all coupler connections, Loop over get and put connections, For valid connections
81\begin{DoxyItemize}
82\item Checks that lag is reasonable
83\item For put fields that need to read a restart file because of a lag, call oasis\+\_\+advance\+\_\+run and read in the restart file. Set readrest to true in oasis\+\_\+advance\+\_\+run to indicate it\textquotesingle{}s called from init.
84\end{DoxyItemize}
85\item Loop over all coupler connections, Loop over get and put connections, For valid connections
86\begin{DoxyItemize}
87\item Read restart for L\+O\+C\+T\+R\+A\+NS fields. Do after restart and advance above because prism\+\_\+advance\+\_\+run fills in the avect with the array info
88\end{DoxyItemize}
89\end{DoxyItemize}
90
91Definition at line 39 of file mod\+\_\+oasis\+\_\+advance.\+F90.
92
93\mbox{\Hypertarget{namespacemod__oasis__advance_a0514c843d051b8ee16adfb349eaee6a7}\label{namespacemod__oasis__advance_a0514c843d051b8ee16adfb349eaee6a7}} 
94\index{mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}!oasis\+\_\+advance\+\_\+map@{oasis\+\_\+advance\+\_\+map}}
95\index{oasis\+\_\+advance\+\_\+map@{oasis\+\_\+advance\+\_\+map}!mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}}
96\subsubsection{\texorpdfstring{oasis\+\_\+advance\+\_\+map()}{oasis\_advance\_map()}}
97{\footnotesize\ttfamily subroutine mod\+\_\+oasis\+\_\+advance\+::oasis\+\_\+advance\+\_\+map (\begin{DoxyParamCaption}\item[{type(mct\+\_\+avect), intent(in)}]{av1,  }\item[{type(mct\+\_\+avect), intent(inout)}]{avd,  }\item[{type(\hyperlink{structmod__oasis__map_1_1prism__mapper__type}{prism\+\_\+mapper\+\_\+type}), intent(inout)}]{mapper,  }\item[{integer(kind=ip\+\_\+i4\+\_\+p), intent(in), optional}]{conserv,  }\item[{character(len=ic\+\_\+med), intent(in), optional}]{consopt,  }\item[{logical, dimension(\+:), intent(in), optional}]{avon,  }\item[{type(mct\+\_\+avect), intent(in), optional}]{av2,  }\item[{type(mct\+\_\+avect), intent(in), optional}]{av3,  }\item[{type(mct\+\_\+avect), intent(in), optional}]{av4,  }\item[{type(mct\+\_\+avect), intent(in), optional}]{av5,  }\item[{character(len=$\ast$), intent(in), optional}]{tstrinp }\end{DoxyParamCaption})\hspace{0.3cm}{\ttfamily [private]}}
98
99
100
101Provides interpolation functionality.
102
103Maps (regrids, interpolates) data from av1 to avd. av2-\/av5 are for higher order mapping (hot).
104
105
106\begin{DoxyParams}[1]{Parameters}
107\mbox{\tt in}  & {\em av1} & source av\\
108\hline
109\mbox{\tt in,out}  & {\em avd} & dst av\\
110\hline
111\mbox{\tt in,out}  & {\em mapper} & prism\+\_\+mapper\\
112\hline
113\mbox{\tt in}  & {\em conserv} & conserv flag\\
114\hline
115\mbox{\tt in}  & {\em consopt} & conserv algorithm option\\
116\hline
117\mbox{\tt in}  & {\em avon} & which source hot are on\\
118\hline
119\mbox{\tt in}  & {\em av2} & source av2 hot\\
120\hline
121\mbox{\tt in}  & {\em av3} & source av3 hot\\
122\hline
123\mbox{\tt in}  & {\em av4} & source av4 hot\\
124\hline
125\mbox{\tt in}  & {\em av5} & source av5 hot\\
126\hline
127\mbox{\tt in}  & {\em tstrinp} & timer label string \\
128\hline
129\end{DoxyParams}
130oasis\+\_\+advance\+\_\+map does the following
131\begin{DoxyItemize}
132\item check for conservation flags
133\item check for higher order terms
134\item check consistency between weights and coupling terms
135\item run mct sparse matrix mapper on data and separately on hot as needed
136\item enforce conservation
137\end{DoxyItemize}
138
139Definition at line 1651 of file mod\+\_\+oasis\+\_\+advance.\+F90.
140
141\mbox{\Hypertarget{namespacemod__oasis__advance_a932b0cbe5d1f5fa27c283c6472be7baf}\label{namespacemod__oasis__advance_a932b0cbe5d1f5fa27c283c6472be7baf}} 
142\index{mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}!oasis\+\_\+advance\+\_\+run@{oasis\+\_\+advance\+\_\+run}}
143\index{oasis\+\_\+advance\+\_\+run@{oasis\+\_\+advance\+\_\+run}!mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}}
144\subsubsection{\texorpdfstring{oasis\+\_\+advance\+\_\+run()}{oasis\_advance\_run()}}
145{\footnotesize\ttfamily subroutine, public mod\+\_\+oasis\+\_\+advance\+::oasis\+\_\+advance\+\_\+run (\begin{DoxyParamCaption}\item[{integer(kind=ip\+\_\+i4\+\_\+p), intent(in)}]{mop,  }\item[{integer(kind=ip\+\_\+i4\+\_\+p), intent(in)}]{varid,  }\item[{integer(kind=ip\+\_\+i4\+\_\+p), intent(in)}]{msec,  }\item[{integer(kind=ip\+\_\+i4\+\_\+p), intent(inout)}]{kinfo,  }\item[{integer(kind=ip\+\_\+i4\+\_\+p), optional}]{nff,  }\item[{integer(kind=ip\+\_\+i4\+\_\+p), optional}]{namid,  }\item[{real (kind=ip\+\_\+r8\+\_\+p), dimension(\+:), optional}]{array1din,  }\item[{real (kind=ip\+\_\+r8\+\_\+p), dimension(\+:), optional}]{array1dout,  }\item[{real (kind=ip\+\_\+r8\+\_\+p), dimension(\+:,\+:), optional}]{array2dout,  }\item[{logical, optional}]{readrest,  }\item[{logical, optional}]{a2on,  }\item[{real (kind=ip\+\_\+r8\+\_\+p), dimension(\+:), optional}]{array2,  }\item[{logical, optional}]{a3on,  }\item[{real (kind=ip\+\_\+r8\+\_\+p), dimension(\+:), optional}]{array3,  }\item[{logical, optional}]{a4on,  }\item[{real (kind=ip\+\_\+r8\+\_\+p), dimension(\+:), optional}]{array4,  }\item[{logical, optional}]{a5on,  }\item[{real (kind=ip\+\_\+r8\+\_\+p), dimension(\+:), optional}]{array5,  }\item[{logical, optional}]{writrest,  }\item[{integer(kind=ip\+\_\+i4\+\_\+p), optional}]{varnum }\end{DoxyParamCaption})}
146
147
148
149Advances the O\+A\+S\+IS coupling.
150
151Only one from array1din, array1dout, or array2dout can be passed in. readrest is set to true when called by the oasis\+\_\+advance\+\_\+init method. Arrays 2 to 5 are for the higher order terms (hot)
152
153
154\begin{DoxyParams}[1]{Parameters}
155\mbox{\tt in}  & {\em mop} & O\+A\+S\+I\+S\+\_\+\+Out or O\+A\+S\+I\+S\+\_\+\+In\\
156\hline
157\mbox{\tt in}  & {\em varid} & prism\+\_\+var id\\
158\hline
159\mbox{\tt in}  & {\em msec} & model time\\
160\hline
161\mbox{\tt in,out}  & {\em kinfo} & status\\
162\hline
163 & {\em nff} & specify particular field for restart\\
164\hline
165 & {\em namid} & only do this namcouple method for restart\\
166\hline
167 & {\em array1din} & 1D put data\\
168\hline
169 & {\em array1dout} & 1D get data\\
170\hline
171 & {\em array2dout} & 2D get data\\
172\hline
173 & {\em readrest} & special flag to indicate this is called from the advance\+\_\+init\\
174\hline
175 & {\em a2on} & logical for array2\\
176\hline
177 & {\em array2} & hot put data\\
178\hline
179 & {\em a3on} & logical for array3\\
180\hline
181 & {\em array3} & hot put data\\
182\hline
183 & {\em a4on} & logical for array4\\
184\hline
185 & {\em array4} & hot put data\\
186\hline
187 & {\em a5on} & logical for array5\\
188\hline
189 & {\em array5} & hot put data\\
190\hline
191 & {\em writrest} & flag to write restart now\\
192\hline
193 & {\em varnum} & variable bundle number \\
194\hline
195\end{DoxyParams}
196oasis\+\_\+advance\+\_\+run does the following
197\begin{DoxyItemize}
198\item Aborts if it\textquotesingle{}s called from non-\/active tasks
199\item Verify field (var) is either In or Out
200\item Loop over all the couplers associated with this var
201\begin{DoxyItemize}
202\item check this prism\+\_\+coupler is valid
203\item check again that model op matches coupler op
204\item set a bunch of local variables
205\item check that lag is reasonable
206\item read restart for call from init phase
207\item compute lag time, only on put side
208\item set time\+\_\+now, is it a coupling period?
209\item check that model hasn\textquotesingle{}t gone past maxtime
210\item check that model isn\textquotesingle{}t going backwards
211\item check that variable didn\textquotesingle{}t miss a coupling period
212\item check that prior sequences weren\textquotesingle{}t missed at this step for get (recv) operation.
213\item compute field index and check sizes
214\item check for higher order coupling fields and get everything ready
215\item update avect1-\/5 on put side and apply appropriate transform
216\item if its coupling time, set status of this var to ready
217\item write restart if requested by interface
218\item decide if it\textquotesingle{}s time to communicate based on time
219\item If it\textquotesingle{}s time to communicate
220\begin{DoxyItemize}
221\item check again that time is correct
222\item average as needed for some transforms
223\item write to restart file if put and at the end of the run, turn off communication
224\item map and communicate operations
225\item write to output files if output is turned on
226\item set avcnt, avect1, ltime, and status
227\end{DoxyItemize}
228\item at the end of the run only, save fields associated with non-\/instant loctrans operations to restart files
229\item G\+ET only, unpack avect1 if it\textquotesingle{}s newly received
230\end{DoxyItemize}
231\end{DoxyItemize}
232
233Definition at line 324 of file mod\+\_\+oasis\+\_\+advance.\+F90.
234
235
236
237\subsection{Variable Documentation}
238\mbox{\Hypertarget{namespacemod__oasis__advance_aad8e5c2e16b0270a7da0800a14ae1e07}\label{namespacemod__oasis__advance_aad8e5c2e16b0270a7da0800a14ae1e07}} 
239\index{mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}!detailed\+\_\+map\+\_\+timing@{detailed\+\_\+map\+\_\+timing}}
240\index{detailed\+\_\+map\+\_\+timing@{detailed\+\_\+map\+\_\+timing}!mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}}
241\subsubsection{\texorpdfstring{detailed\+\_\+map\+\_\+timing}{detailed\_map\_timing}}
242{\footnotesize\ttfamily logical, parameter mod\+\_\+oasis\+\_\+advance\+::detailed\+\_\+map\+\_\+timing = .false.\hspace{0.3cm}{\ttfamily [private]}}
243
244
245
246Definition at line 30 of file mod\+\_\+oasis\+\_\+advance.\+F90.
247
248\mbox{\Hypertarget{namespacemod__oasis__advance_ac617024af9299c27eaeb9156f647b028}\label{namespacemod__oasis__advance_ac617024af9299c27eaeb9156f647b028}} 
249\index{mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}!map\+\_\+barrier@{map\+\_\+barrier}}
250\index{map\+\_\+barrier@{map\+\_\+barrier}!mod\+\_\+oasis\+\_\+advance@{mod\+\_\+oasis\+\_\+advance}}
251\subsubsection{\texorpdfstring{map\+\_\+barrier}{map\_barrier}}
252{\footnotesize\ttfamily logical, parameter mod\+\_\+oasis\+\_\+advance\+::map\+\_\+barrier = .false.\hspace{0.3cm}{\ttfamily [private]}}
253
254
255
256Definition at line 29 of file mod\+\_\+oasis\+\_\+advance.\+F90.
257
Note: See TracBrowser for help on using the repository browser.