source: CPL/oasis3-mct/branches/OASIS3-MCT_5.0_branch/doc/doxygen/html/namespacemod__oasis__advance.html @ 6331

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

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

File size: 28.9 KB
Line 
1<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml">
3<head>
4<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
5<meta http-equiv="X-UA-Compatible" content="IE=9"/>
6<meta name="generator" content="Doxygen 1.8.13"/>
7<meta name="viewport" content="width=device-width, initial-scale=1"/>
8<title>Oasis3-MCT: mod_oasis_advance Module Reference</title>
9<link href="tabs.css" rel="stylesheet" type="text/css"/>
10<script type="text/javascript" src="jquery.js"></script>
11<script type="text/javascript" src="dynsections.js"></script>
12<link href="search/search.css" rel="stylesheet" type="text/css"/>
13<script type="text/javascript" src="search/searchdata.js"></script>
14<script type="text/javascript" src="search/search.js"></script>
15<link href="doxygen.css" rel="stylesheet" type="text/css" />
16</head>
17<body>
18<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
19<div id="titlearea">
20<table cellspacing="0" cellpadding="0">
21 <tbody>
22 <tr style="height: 56px;">
23  <td id="projectalign" style="padding-left: 0.5em;">
24   <div id="projectname">Oasis3-MCT
25   </div>
26  </td>
27 </tr>
28 </tbody>
29</table>
30</div>
31<!-- end header part -->
32<!-- Generated by Doxygen 1.8.13 -->
33<script type="text/javascript">
34var searchBox = new SearchBox("searchBox", "search",false,'Search');
35</script>
36<script type="text/javascript" src="menudata.js"></script>
37<script type="text/javascript" src="menu.js"></script>
38<script type="text/javascript">
39$(function() {
40  initMenu('',true,false,'search.php','Search');
41  $(document).ready(function() { init_search(); });
42});
43</script>
44<div id="main-nav"></div>
45<!-- window showing the filter options -->
46<div id="MSearchSelectWindow"
47     onmouseover="return searchBox.OnSearchSelectShow()"
48     onmouseout="return searchBox.OnSearchSelectHide()"
49     onkeydown="return searchBox.OnSearchSelectKey(event)">
50</div>
51
52<!-- iframe showing the search results (closed by default) -->
53<div id="MSearchResultsWindow">
54<iframe src="javascript:void(0)" frameborder="0" 
55        name="MSearchResults" id="MSearchResults">
56</iframe>
57</div>
58
59</div><!-- top -->
60<div class="header">
61  <div class="summary">
62<a href="#func-members">Functions/Subroutines</a> &#124;
63<a href="#var-members">Variables</a>  </div>
64  <div class="headertitle">
65<div class="title">mod_oasis_advance Module Reference</div>  </div>
66</div><!--header-->
67<div class="contents">
68
69<p>Advances the OASIS coupling. 
70<a href="#details">More...</a></p>
71<table class="memberdecls">
72<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="func-members"></a>
73Functions/Subroutines</h2></td></tr>
74<tr class="memitem:a480bfe5b333300c1084af8f9c239a81d"><td class="memItemLeft" align="right" valign="top">subroutine, public&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemod__oasis__advance.html#a480bfe5b333300c1084af8f9c239a81d">oasis_advance_init</a> (kinfo)</td></tr>
75<tr class="memdesc:a480bfe5b333300c1084af8f9c239a81d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Initializes the OASIS fields.  <a href="#a480bfe5b333300c1084af8f9c239a81d">More...</a><br /></td></tr>
76<tr class="separator:a480bfe5b333300c1084af8f9c239a81d"><td class="memSeparator" colspan="2">&#160;</td></tr>
77<tr class="memitem:a932b0cbe5d1f5fa27c283c6472be7baf"><td class="memItemLeft" align="right" valign="top">subroutine, public&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemod__oasis__advance.html#a932b0cbe5d1f5fa27c283c6472be7baf">oasis_advance_run</a> (mop, varid, msec, kinfo, nff, namid, array1din, array1dout, array2dout, readrest, a2on, array2, a3on, array3, a4on, array4, a5on, array5, writrest, varnum)</td></tr>
78<tr class="memdesc:a932b0cbe5d1f5fa27c283c6472be7baf"><td class="mdescLeft">&#160;</td><td class="mdescRight">Advances the OASIS coupling.  <a href="#a932b0cbe5d1f5fa27c283c6472be7baf">More...</a><br /></td></tr>
79<tr class="separator:a932b0cbe5d1f5fa27c283c6472be7baf"><td class="memSeparator" colspan="2">&#160;</td></tr>
80<tr class="memitem:a0514c843d051b8ee16adfb349eaee6a7"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemod__oasis__advance.html#a0514c843d051b8ee16adfb349eaee6a7">oasis_advance_map</a> (av1, avd, mapper, conserv, consopt, avon, av2, av3, av4, av5, tstrinp)</td></tr>
81<tr class="memdesc:a0514c843d051b8ee16adfb349eaee6a7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides interpolation functionality.  <a href="#a0514c843d051b8ee16adfb349eaee6a7">More...</a><br /></td></tr>
82<tr class="separator:a0514c843d051b8ee16adfb349eaee6a7"><td class="memSeparator" colspan="2">&#160;</td></tr>
83<tr class="memitem:acf8f4a02082ba2d9f32f0835ad14e11d"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemod__oasis__advance.html#acf8f4a02082ba2d9f32f0835ad14e11d">oasis_advance_avsum</a> (av, sum, gsmap, mpicom, mask, wts, consopt)</td></tr>
84<tr class="memdesc:acf8f4a02082ba2d9f32f0835ad14e11d"><td class="mdescLeft">&#160;</td><td class="mdescRight">A generic method for summing fields in an attribute vector.  <a href="#acf8f4a02082ba2d9f32f0835ad14e11d">More...</a><br /></td></tr>
85<tr class="separator:acf8f4a02082ba2d9f32f0835ad14e11d"><td class="memSeparator" colspan="2">&#160;</td></tr>
86<tr class="memitem:af611b26fe4601ded488fd5d3c03b12a2"><td class="memItemLeft" align="right" valign="top">subroutine&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemod__oasis__advance.html#af611b26fe4601ded488fd5d3c03b12a2">oasis_advance_avdiag</a> (av, mpicom, mask, wts)</td></tr>
87<tr class="memdesc:af611b26fe4601ded488fd5d3c03b12a2"><td class="mdescLeft">&#160;</td><td class="mdescRight">A generic method for writing the global sums of fields in an attribute vector.  <a href="#af611b26fe4601ded488fd5d3c03b12a2">More...</a><br /></td></tr>
88<tr class="separator:af611b26fe4601ded488fd5d3c03b12a2"><td class="memSeparator" colspan="2">&#160;</td></tr>
89</table><table class="memberdecls">
90<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="var-members"></a>
91Variables</h2></td></tr>
92<tr class="memitem:ac617024af9299c27eaeb9156f647b028"><td class="memItemLeft" align="right" valign="top">logical, parameter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemod__oasis__advance.html#ac617024af9299c27eaeb9156f647b028">map_barrier</a> = .false.</td></tr>
93<tr class="separator:ac617024af9299c27eaeb9156f647b028"><td class="memSeparator" colspan="2">&#160;</td></tr>
94<tr class="memitem:aad8e5c2e16b0270a7da0800a14ae1e07"><td class="memItemLeft" align="right" valign="top">logical, parameter&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="namespacemod__oasis__advance.html#aad8e5c2e16b0270a7da0800a14ae1e07">detailed_map_timing</a> = .false.</td></tr>
95<tr class="separator:aad8e5c2e16b0270a7da0800a14ae1e07"><td class="memSeparator" colspan="2">&#160;</td></tr>
96</table>
97<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
98<div class="textblock"><p>Advances the OASIS coupling. </p>
99</div><h2 class="groupheader">Function/Subroutine Documentation</h2>
100<a id="af611b26fe4601ded488fd5d3c03b12a2"></a>
101<h2 class="memtitle"><span class="permalink"><a href="#af611b26fe4601ded488fd5d3c03b12a2">&#9670;&nbsp;</a></span>oasis_advance_avdiag()</h2>
102
103<div class="memitem">
104<div class="memproto">
105<table class="mlabels">
106  <tr>
107  <td class="mlabels-left">
108      <table class="memname">
109        <tr>
110          <td class="memname">subroutine mod_oasis_advance::oasis_advance_avdiag </td>
111          <td>(</td>
112          <td class="paramtype">type(mct_avect), intent(in)&#160;</td>
113          <td class="paramname"><em>av</em>, </td>
114        </tr>
115        <tr>
116          <td class="paramkey"></td>
117          <td></td>
118          <td class="paramtype">integer(kind=ip_i4_p), intent(in)&#160;</td>
119          <td class="paramname"><em>mpicom</em>, </td>
120        </tr>
121        <tr>
122          <td class="paramkey"></td>
123          <td></td>
124          <td class="paramtype">integer(kind=ip_i4_p), dimension(:), intent(in), optional&#160;</td>
125          <td class="paramname"><em>mask</em>, </td>
126        </tr>
127        <tr>
128          <td class="paramkey"></td>
129          <td></td>
130          <td class="paramtype">real(kind=ip_r8_p), dimension(:), intent(in), optional&#160;</td>
131          <td class="paramname"><em>wts</em>&#160;</td>
132        </tr>
133        <tr>
134          <td></td>
135          <td>)</td>
136          <td></td><td></td>
137        </tr>
138      </table>
139  </td>
140  <td class="mlabels-right">
141<span class="mlabels"><span class="mlabel">private</span></span>  </td>
142  </tr>
143</table>
144</div><div class="memdoc">
145
146<p>A generic method for writing the global sums of fields in an attribute vector. </p>
147
148<p class="definition">Definition at line <a class="el" href="mod__oasis__advance_8_f90_source.html#l02150">2150</a> of file <a class="el" href="mod__oasis__advance_8_f90_source.html">mod_oasis_advance.F90</a>.</p>
149
150</div>
151</div>
152<a id="acf8f4a02082ba2d9f32f0835ad14e11d"></a>
153<h2 class="memtitle"><span class="permalink"><a href="#acf8f4a02082ba2d9f32f0835ad14e11d">&#9670;&nbsp;</a></span>oasis_advance_avsum()</h2>
154
155<div class="memitem">
156<div class="memproto">
157<table class="mlabels">
158  <tr>
159  <td class="mlabels-left">
160      <table class="memname">
161        <tr>
162          <td class="memname">subroutine mod_oasis_advance::oasis_advance_avsum </td>
163          <td>(</td>
164          <td class="paramtype">type(mct_avect), intent(in)&#160;</td>
165          <td class="paramname"><em>av</em>, </td>
166        </tr>
167        <tr>
168          <td class="paramkey"></td>
169          <td></td>
170          <td class="paramtype">real(kind=ip_r8_p), dimension(:), intent(inout)&#160;</td>
171          <td class="paramname"><em>sum</em>, </td>
172        </tr>
173        <tr>
174          <td class="paramkey"></td>
175          <td></td>
176          <td class="paramtype">type(mct_gsmap), intent(in)&#160;</td>
177          <td class="paramname"><em>gsmap</em>, </td>
178        </tr>
179        <tr>
180          <td class="paramkey"></td>
181          <td></td>
182          <td class="paramtype">integer(kind=ip_i4_p), intent(in)&#160;</td>
183          <td class="paramname"><em>mpicom</em>, </td>
184        </tr>
185        <tr>
186          <td class="paramkey"></td>
187          <td></td>
188          <td class="paramtype">integer(kind=ip_i4_p), dimension(:), intent(in), optional&#160;</td>
189          <td class="paramname"><em>mask</em>, </td>
190        </tr>
191        <tr>
192          <td class="paramkey"></td>
193          <td></td>
194          <td class="paramtype">real(kind=ip_r8_p), dimension(:), intent(in), optional&#160;</td>
195          <td class="paramname"><em>wts</em>, </td>
196        </tr>
197        <tr>
198          <td class="paramkey"></td>
199          <td></td>
200          <td class="paramtype">character(len=ic_med), intent(in), optional&#160;</td>
201          <td class="paramname"><em>consopt</em>&#160;</td>
202        </tr>
203        <tr>
204          <td></td>
205          <td>)</td>
206          <td></td><td></td>
207        </tr>
208      </table>
209  </td>
210  <td class="mlabels-right">
211<span class="mlabels"><span class="mlabel">private</span></span>  </td>
212  </tr>
213</table>
214</div><div class="memdoc">
215
216<p>A generic method for summing fields in an attribute vector. </p>
217
218<p class="definition">Definition at line <a class="el" href="mod__oasis__advance_8_f90_source.html#l02002">2002</a> of file <a class="el" href="mod__oasis__advance_8_f90_source.html">mod_oasis_advance.F90</a>.</p>
219
220</div>
221</div>
222<a id="a480bfe5b333300c1084af8f9c239a81d"></a>
223<h2 class="memtitle"><span class="permalink"><a href="#a480bfe5b333300c1084af8f9c239a81d">&#9670;&nbsp;</a></span>oasis_advance_init()</h2>
224
225<div class="memitem">
226<div class="memproto">
227      <table class="memname">
228        <tr>
229          <td class="memname">subroutine, public mod_oasis_advance::oasis_advance_init </td>
230          <td>(</td>
231          <td class="paramtype">integer(kind=ip_i4_p), intent(inout)&#160;</td>
232          <td class="paramname"><em>kinfo</em></td><td>)</td>
233          <td></td>
234        </tr>
235      </table>
236</div><div class="memdoc">
237
238<p>Initializes the OASIS fields. </p>
239<dl class="params"><dt>Parameters</dt><dd>
240  <table class="params">
241    <tr><td class="paramdir">[in,out]</td><td class="paramname">kinfo</td><td>status, not used </td></tr>
242  </table>
243  </dd>
244</dl>
245<p>oasis_advance_init does the following</p><ul>
246<li>Aborts if it's called from non-active tasks</li>
247<li>Loop over all coupler connections, Loop over get and put connections, For valid connections<ul>
248<li>Checks that lag is reasonable</li>
249<li>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's called from init.</li>
250</ul>
251</li>
252<li>Loop over all coupler connections, Loop over get and put connections, For valid connections<ul>
253<li>Read restart for LOCTRANS fields. Do after restart and advance above because prism_advance_run fills in the avect with the array info </li>
254</ul>
255</li>
256</ul>
257
258<p class="definition">Definition at line <a class="el" href="mod__oasis__advance_8_f90_source.html#l00039">39</a> of file <a class="el" href="mod__oasis__advance_8_f90_source.html">mod_oasis_advance.F90</a>.</p>
259
260</div>
261</div>
262<a id="a0514c843d051b8ee16adfb349eaee6a7"></a>
263<h2 class="memtitle"><span class="permalink"><a href="#a0514c843d051b8ee16adfb349eaee6a7">&#9670;&nbsp;</a></span>oasis_advance_map()</h2>
264
265<div class="memitem">
266<div class="memproto">
267<table class="mlabels">
268  <tr>
269  <td class="mlabels-left">
270      <table class="memname">
271        <tr>
272          <td class="memname">subroutine mod_oasis_advance::oasis_advance_map </td>
273          <td>(</td>
274          <td class="paramtype">type(mct_avect), intent(in)&#160;</td>
275          <td class="paramname"><em>av1</em>, </td>
276        </tr>
277        <tr>
278          <td class="paramkey"></td>
279          <td></td>
280          <td class="paramtype">type(mct_avect), intent(inout)&#160;</td>
281          <td class="paramname"><em>avd</em>, </td>
282        </tr>
283        <tr>
284          <td class="paramkey"></td>
285          <td></td>
286          <td class="paramtype">type(<a class="el" href="structmod__oasis__map_1_1prism__mapper__type.html">prism_mapper_type</a>), intent(inout)&#160;</td>
287          <td class="paramname"><em>mapper</em>, </td>
288        </tr>
289        <tr>
290          <td class="paramkey"></td>
291          <td></td>
292          <td class="paramtype">integer(kind=ip_i4_p), intent(in), optional&#160;</td>
293          <td class="paramname"><em>conserv</em>, </td>
294        </tr>
295        <tr>
296          <td class="paramkey"></td>
297          <td></td>
298          <td class="paramtype">character(len=ic_med), intent(in), optional&#160;</td>
299          <td class="paramname"><em>consopt</em>, </td>
300        </tr>
301        <tr>
302          <td class="paramkey"></td>
303          <td></td>
304          <td class="paramtype">logical, dimension(:), intent(in), optional&#160;</td>
305          <td class="paramname"><em>avon</em>, </td>
306        </tr>
307        <tr>
308          <td class="paramkey"></td>
309          <td></td>
310          <td class="paramtype">type(mct_avect), intent(in), optional&#160;</td>
311          <td class="paramname"><em>av2</em>, </td>
312        </tr>
313        <tr>
314          <td class="paramkey"></td>
315          <td></td>
316          <td class="paramtype">type(mct_avect), intent(in), optional&#160;</td>
317          <td class="paramname"><em>av3</em>, </td>
318        </tr>
319        <tr>
320          <td class="paramkey"></td>
321          <td></td>
322          <td class="paramtype">type(mct_avect), intent(in), optional&#160;</td>
323          <td class="paramname"><em>av4</em>, </td>
324        </tr>
325        <tr>
326          <td class="paramkey"></td>
327          <td></td>
328          <td class="paramtype">type(mct_avect), intent(in), optional&#160;</td>
329          <td class="paramname"><em>av5</em>, </td>
330        </tr>
331        <tr>
332          <td class="paramkey"></td>
333          <td></td>
334          <td class="paramtype">character(len=*), intent(in), optional&#160;</td>
335          <td class="paramname"><em>tstrinp</em>&#160;</td>
336        </tr>
337        <tr>
338          <td></td>
339          <td>)</td>
340          <td></td><td></td>
341        </tr>
342      </table>
343  </td>
344  <td class="mlabels-right">
345<span class="mlabels"><span class="mlabel">private</span></span>  </td>
346  </tr>
347</table>
348</div><div class="memdoc">
349
350<p>Provides interpolation functionality. </p>
351<p>Maps (regrids, interpolates) data from av1 to avd. av2-av5 are for higher order mapping (hot).</p>
352<dl class="params"><dt>Parameters</dt><dd>
353  <table class="params">
354    <tr><td class="paramdir">[in]</td><td class="paramname">av1</td><td>source av</td></tr>
355    <tr><td class="paramdir">[in,out]</td><td class="paramname">avd</td><td>dst av</td></tr>
356    <tr><td class="paramdir">[in,out]</td><td class="paramname">mapper</td><td>prism_mapper</td></tr>
357    <tr><td class="paramdir">[in]</td><td class="paramname">conserv</td><td>conserv flag</td></tr>
358    <tr><td class="paramdir">[in]</td><td class="paramname">consopt</td><td>conserv algorithm option</td></tr>
359    <tr><td class="paramdir">[in]</td><td class="paramname">avon</td><td>which source hot are on</td></tr>
360    <tr><td class="paramdir">[in]</td><td class="paramname">av2</td><td>source av2 hot</td></tr>
361    <tr><td class="paramdir">[in]</td><td class="paramname">av3</td><td>source av3 hot</td></tr>
362    <tr><td class="paramdir">[in]</td><td class="paramname">av4</td><td>source av4 hot</td></tr>
363    <tr><td class="paramdir">[in]</td><td class="paramname">av5</td><td>source av5 hot</td></tr>
364    <tr><td class="paramdir">[in]</td><td class="paramname">tstrinp</td><td>timer label string </td></tr>
365  </table>
366  </dd>
367</dl>
368<p>oasis_advance_map does the following</p><ul>
369<li>check for conservation flags</li>
370<li>check for higher order terms</li>
371<li>check consistency between weights and coupling terms</li>
372<li>run mct sparse matrix mapper on data and separately on hot as needed</li>
373<li>enforce conservation </li>
374</ul>
375
376<p class="definition">Definition at line <a class="el" href="mod__oasis__advance_8_f90_source.html#l01651">1651</a> of file <a class="el" href="mod__oasis__advance_8_f90_source.html">mod_oasis_advance.F90</a>.</p>
377
378</div>
379</div>
380<a id="a932b0cbe5d1f5fa27c283c6472be7baf"></a>
381<h2 class="memtitle"><span class="permalink"><a href="#a932b0cbe5d1f5fa27c283c6472be7baf">&#9670;&nbsp;</a></span>oasis_advance_run()</h2>
382
383<div class="memitem">
384<div class="memproto">
385      <table class="memname">
386        <tr>
387          <td class="memname">subroutine, public mod_oasis_advance::oasis_advance_run </td>
388          <td>(</td>
389          <td class="paramtype">integer(kind=ip_i4_p), intent(in)&#160;</td>
390          <td class="paramname"><em>mop</em>, </td>
391        </tr>
392        <tr>
393          <td class="paramkey"></td>
394          <td></td>
395          <td class="paramtype">integer(kind=ip_i4_p), intent(in)&#160;</td>
396          <td class="paramname"><em>varid</em>, </td>
397        </tr>
398        <tr>
399          <td class="paramkey"></td>
400          <td></td>
401          <td class="paramtype">integer(kind=ip_i4_p), intent(in)&#160;</td>
402          <td class="paramname"><em>msec</em>, </td>
403        </tr>
404        <tr>
405          <td class="paramkey"></td>
406          <td></td>
407          <td class="paramtype">integer(kind=ip_i4_p), intent(inout)&#160;</td>
408          <td class="paramname"><em>kinfo</em>, </td>
409        </tr>
410        <tr>
411          <td class="paramkey"></td>
412          <td></td>
413          <td class="paramtype">integer(kind=ip_i4_p), optional&#160;</td>
414          <td class="paramname"><em>nff</em>, </td>
415        </tr>
416        <tr>
417          <td class="paramkey"></td>
418          <td></td>
419          <td class="paramtype">integer(kind=ip_i4_p), optional&#160;</td>
420          <td class="paramname"><em>namid</em>, </td>
421        </tr>
422        <tr>
423          <td class="paramkey"></td>
424          <td></td>
425          <td class="paramtype">real (kind=ip_r8_p), dimension(:), optional&#160;</td>
426          <td class="paramname"><em>array1din</em>, </td>
427        </tr>
428        <tr>
429          <td class="paramkey"></td>
430          <td></td>
431          <td class="paramtype">real (kind=ip_r8_p), dimension(:), optional&#160;</td>
432          <td class="paramname"><em>array1dout</em>, </td>
433        </tr>
434        <tr>
435          <td class="paramkey"></td>
436          <td></td>
437          <td class="paramtype">real (kind=ip_r8_p), dimension(:,:), optional&#160;</td>
438          <td class="paramname"><em>array2dout</em>, </td>
439        </tr>
440        <tr>
441          <td class="paramkey"></td>
442          <td></td>
443          <td class="paramtype">logical, optional&#160;</td>
444          <td class="paramname"><em>readrest</em>, </td>
445        </tr>
446        <tr>
447          <td class="paramkey"></td>
448          <td></td>
449          <td class="paramtype">logical, optional&#160;</td>
450          <td class="paramname"><em>a2on</em>, </td>
451        </tr>
452        <tr>
453          <td class="paramkey"></td>
454          <td></td>
455          <td class="paramtype">real (kind=ip_r8_p), dimension(:), optional&#160;</td>
456          <td class="paramname"><em>array2</em>, </td>
457        </tr>
458        <tr>
459          <td class="paramkey"></td>
460          <td></td>
461          <td class="paramtype">logical, optional&#160;</td>
462          <td class="paramname"><em>a3on</em>, </td>
463        </tr>
464        <tr>
465          <td class="paramkey"></td>
466          <td></td>
467          <td class="paramtype">real (kind=ip_r8_p), dimension(:), optional&#160;</td>
468          <td class="paramname"><em>array3</em>, </td>
469        </tr>
470        <tr>
471          <td class="paramkey"></td>
472          <td></td>
473          <td class="paramtype">logical, optional&#160;</td>
474          <td class="paramname"><em>a4on</em>, </td>
475        </tr>
476        <tr>
477          <td class="paramkey"></td>
478          <td></td>
479          <td class="paramtype">real (kind=ip_r8_p), dimension(:), optional&#160;</td>
480          <td class="paramname"><em>array4</em>, </td>
481        </tr>
482        <tr>
483          <td class="paramkey"></td>
484          <td></td>
485          <td class="paramtype">logical, optional&#160;</td>
486          <td class="paramname"><em>a5on</em>, </td>
487        </tr>
488        <tr>
489          <td class="paramkey"></td>
490          <td></td>
491          <td class="paramtype">real (kind=ip_r8_p), dimension(:), optional&#160;</td>
492          <td class="paramname"><em>array5</em>, </td>
493        </tr>
494        <tr>
495          <td class="paramkey"></td>
496          <td></td>
497          <td class="paramtype">logical, optional&#160;</td>
498          <td class="paramname"><em>writrest</em>, </td>
499        </tr>
500        <tr>
501          <td class="paramkey"></td>
502          <td></td>
503          <td class="paramtype">integer(kind=ip_i4_p), optional&#160;</td>
504          <td class="paramname"><em>varnum</em>&#160;</td>
505        </tr>
506        <tr>
507          <td></td>
508          <td>)</td>
509          <td></td><td></td>
510        </tr>
511      </table>
512</div><div class="memdoc">
513
514<p>Advances the OASIS coupling. </p>
515<p>Only 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)</p>
516<dl class="params"><dt>Parameters</dt><dd>
517  <table class="params">
518    <tr><td class="paramdir">[in]</td><td class="paramname">mop</td><td>OASIS_Out or OASIS_In</td></tr>
519    <tr><td class="paramdir">[in]</td><td class="paramname">varid</td><td>prism_var id</td></tr>
520    <tr><td class="paramdir">[in]</td><td class="paramname">msec</td><td>model time</td></tr>
521    <tr><td class="paramdir">[in,out]</td><td class="paramname">kinfo</td><td>status</td></tr>
522    <tr><td class="paramdir"></td><td class="paramname">nff</td><td>specify particular field for restart</td></tr>
523    <tr><td class="paramdir"></td><td class="paramname">namid</td><td>only do this namcouple method for restart</td></tr>
524    <tr><td class="paramdir"></td><td class="paramname">array1din</td><td>1D put data</td></tr>
525    <tr><td class="paramdir"></td><td class="paramname">array1dout</td><td>1D get data</td></tr>
526    <tr><td class="paramdir"></td><td class="paramname">array2dout</td><td>2D get data</td></tr>
527    <tr><td class="paramdir"></td><td class="paramname">readrest</td><td>special flag to indicate this is called from the advance_init</td></tr>
528    <tr><td class="paramdir"></td><td class="paramname">a2on</td><td>logical for array2</td></tr>
529    <tr><td class="paramdir"></td><td class="paramname">array2</td><td>hot put data</td></tr>
530    <tr><td class="paramdir"></td><td class="paramname">a3on</td><td>logical for array3</td></tr>
531    <tr><td class="paramdir"></td><td class="paramname">array3</td><td>hot put data</td></tr>
532    <tr><td class="paramdir"></td><td class="paramname">a4on</td><td>logical for array4</td></tr>
533    <tr><td class="paramdir"></td><td class="paramname">array4</td><td>hot put data</td></tr>
534    <tr><td class="paramdir"></td><td class="paramname">a5on</td><td>logical for array5</td></tr>
535    <tr><td class="paramdir"></td><td class="paramname">array5</td><td>hot put data</td></tr>
536    <tr><td class="paramdir"></td><td class="paramname">writrest</td><td>flag to write restart now</td></tr>
537    <tr><td class="paramdir"></td><td class="paramname">varnum</td><td>variable bundle number </td></tr>
538  </table>
539  </dd>
540</dl>
541<p>oasis_advance_run does the following</p><ul>
542<li>Aborts if it's called from non-active tasks</li>
543<li>Verify field (var) is either In or Out</li>
544<li>Loop over all the couplers associated with this var<ul>
545<li>check this prism_coupler is valid</li>
546<li>check again that model op matches coupler op</li>
547<li>set a bunch of local variables</li>
548<li>check that lag is reasonable</li>
549<li>read restart for call from init phase</li>
550<li>compute lag time, only on put side</li>
551<li>set time_now, is it a coupling period?</li>
552<li>check that model hasn't gone past maxtime</li>
553<li>check that model isn't going backwards</li>
554<li>check that variable didn't miss a coupling period</li>
555<li>check that prior sequences weren't missed at this step for get (recv) operation.</li>
556<li>compute field index and check sizes</li>
557<li>check for higher order coupling fields and get everything ready</li>
558<li>update avect1-5 on put side and apply appropriate transform</li>
559<li>if its coupling time, set status of this var to ready</li>
560<li>write restart if requested by interface</li>
561<li>decide if it's time to communicate based on time</li>
562<li>If it's time to communicate<ul>
563<li>check again that time is correct</li>
564<li>average as needed for some transforms</li>
565<li>write to restart file if put and at the end of the run, turn off communication</li>
566<li>map and communicate operations</li>
567<li>write to output files if output is turned on</li>
568<li>set avcnt, avect1, ltime, and status</li>
569</ul>
570</li>
571<li>at the end of the run only, save fields associated with non-instant loctrans operations to restart files</li>
572<li>GET only, unpack avect1 if it's newly received </li>
573</ul>
574</li>
575</ul>
576
577<p class="definition">Definition at line <a class="el" href="mod__oasis__advance_8_f90_source.html#l00324">324</a> of file <a class="el" href="mod__oasis__advance_8_f90_source.html">mod_oasis_advance.F90</a>.</p>
578
579</div>
580</div>
581<h2 class="groupheader">Variable Documentation</h2>
582<a id="aad8e5c2e16b0270a7da0800a14ae1e07"></a>
583<h2 class="memtitle"><span class="permalink"><a href="#aad8e5c2e16b0270a7da0800a14ae1e07">&#9670;&nbsp;</a></span>detailed_map_timing</h2>
584
585<div class="memitem">
586<div class="memproto">
587<table class="mlabels">
588  <tr>
589  <td class="mlabels-left">
590      <table class="memname">
591        <tr>
592          <td class="memname">logical, parameter mod_oasis_advance::detailed_map_timing = .false.</td>
593        </tr>
594      </table>
595  </td>
596  <td class="mlabels-right">
597<span class="mlabels"><span class="mlabel">private</span></span>  </td>
598  </tr>
599</table>
600</div><div class="memdoc">
601
602<p class="definition">Definition at line <a class="el" href="mod__oasis__advance_8_f90_source.html#l00030">30</a> of file <a class="el" href="mod__oasis__advance_8_f90_source.html">mod_oasis_advance.F90</a>.</p>
603
604</div>
605</div>
606<a id="ac617024af9299c27eaeb9156f647b028"></a>
607<h2 class="memtitle"><span class="permalink"><a href="#ac617024af9299c27eaeb9156f647b028">&#9670;&nbsp;</a></span>map_barrier</h2>
608
609<div class="memitem">
610<div class="memproto">
611<table class="mlabels">
612  <tr>
613  <td class="mlabels-left">
614      <table class="memname">
615        <tr>
616          <td class="memname">logical, parameter mod_oasis_advance::map_barrier = .false.</td>
617        </tr>
618      </table>
619  </td>
620  <td class="mlabels-right">
621<span class="mlabels"><span class="mlabel">private</span></span>  </td>
622  </tr>
623</table>
624</div><div class="memdoc">
625
626<p class="definition">Definition at line <a class="el" href="mod__oasis__advance_8_f90_source.html#l00029">29</a> of file <a class="el" href="mod__oasis__advance_8_f90_source.html">mod_oasis_advance.F90</a>.</p>
627
628</div>
629</div>
630</div><!-- contents -->
631<!-- start footer part -->
632<hr class="footer"/><address class="footer"><small>
633Generated on Fri Jun 29 2018 20:52:29 for Oasis3-MCT by &#160;<a href="http://www.doxygen.org/index.html">
634<img class="footer" src="doxygen.png" alt="doxygen"/>
635</a> 1.8.13
636</small></address>
637</body>
638</html>
Note: See TracBrowser for help on using the repository browser.