/[MITgcm]/MITgcm/pkg/autodiff/exch_ad.F
ViewVC logotype

Contents of /MITgcm/pkg/autodiff/exch_ad.F

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.3 - (show annotations) (download)
Fri Jul 13 13:33:49 2001 UTC (22 years, 9 months ago) by heimbach
Branch: MAIN
CVS Tags: checkpoint46n_post, checkpoint51k_post, checkpoint47e_post, checkpoint57m_post, checkpoint52l_pre, checkpoint44e_post, hrcube4, hrcube5, checkpoint46l_post, checkpoint57g_pre, checkpoint46g_pre, checkpoint47c_post, release1_p13_pre, checkpoint50c_post, checkpoint57s_post, checkpoint58b_post, checkpoint57b_post, checkpoint46f_post, checkpoint52d_pre, checkpoint57g_post, checkpoint48e_post, checkpoint56b_post, checkpoint50g_post, checkpoint57y_post, checkpoint46b_post, checkpoint52j_pre, checkpoint43a-release1mods, checkpoint51o_pre, checkpoint44g_post, checkpoint54d_post, checkpoint48c_post, checkpoint54e_post, ecco_c50_e32, ecco_c50_e33, ecco_c50_e30, ecco_c50_e31, release1_p13, checkpoint40pre3, checkpoint51l_post, checkpoint40pre7, checkpoint40pre6, checkpoint48i_post, checkpoint57r_post, checkpoint40pre9, checkpoint40pre8, checkpoint46l_pre, checkpoint57d_post, checkpoint57i_post, checkpoint50d_pre, checkpoint52k_post, chkpt44d_post, checkpoint59, checkpoint58, checkpoint55, checkpoint54, checkpoint57, checkpoint56, checkpoint51, checkpoint53, checkpoint52, release1_p8, release1_p9, checkpoint50d_post, release1_p1, release1_p2, release1_p3, release1_p4, release1_p5, release1_p6, release1_p7, checkpoint58f_post, checkpoint52f_post, checkpoint57n_post, checkpoint58d_post, checkpoint58a_post, checkpoint50b_pre, checkpoint44e_pre, checkpoint57z_post, checkpoint54f_post, checkpoint51f_post, release1_b1, ecco_c51_e34d, ecco_c51_e34e, ecco_c51_e34f, ecco_c51_e34g, ecco_c51_e34a, ecco_c51_e34b, ecco_c51_e34c, checkpoint58y_post, checkpoint48b_post, checkpoint43, checkpoint51d_post, checkpoint48c_pre, checkpoint55a_post, checkpoint51t_post, checkpoint58t_post, c49_autodiff, checkpoint51n_post, release1_chkpt44d_post, checkpoint55i_post, checkpoint57l_post, checkpoint52i_pre, checkpoint57h_post, hrcube_2, hrcube_3, checkpoint51s_post, checkpoint57t_post, checkpoint55c_post, checkpoint48d_pre, checkpoint51j_post, checkpoint47i_post, checkpoint52e_pre, checkpoint57v_post, checkpoint57f_post, checkpoint52e_post, checkpoint51n_pre, checkpoint47d_post, icebear5, icebear4, icebear3, icebear2, checkpoint53d_post, checkpoint46d_pre, checkpoint40pre2, checkpoint57a_post, checkpoint48d_post, release1-branch_tutorials, checkpoint57h_pre, checkpoint57x_post, checkpoint48f_post, checkpoint45d_post, checkpoint52b_pre, checkpoint54b_post, checkpoint46j_pre, checkpoint58w_post, ecco_c50_e28, checkpoint51l_pre, checkpoint52m_post, checkpoint47d_pre, checkpoint57y_pre, chkpt44a_post, checkpoint55g_post, checkpoint44h_pre, checkpoint48h_post, checkpoint51q_post, checkpoint40pre4, ecco_c50_e29, checkpoint51b_pre, checkpoint46a_post, checkpoint47g_post, checkpoint52b_post, checkpoint52c_post, checkpoint46j_post, checkpoint51h_pre, checkpoint46k_post, checkpoint46b_pre, chkpt44c_pre, checkpoint58o_post, checkpoint52h_pre, checkpoint45a_post, checkpoint57c_post, checkpoint50f_post, checkpoint50a_post, checkpoint50f_pre, hrcube_1, checkpoint58p_post, checkpoint58q_post, checkpoint51m_post, checkpoint55d_post, ecco_c44_e19, ecco_c44_e18, ecco_c44_e17, ecco_c44_e16, release1_p12, checkpoint58e_post, release1_p10, release1_p11, release1_p16, release1_p17, release1_p14, release1_p15, checkpoint58m_post, checkpoint47a_post, ecco_c50_e33a, checkpoint53c_post, checkpoint55d_pre, checkpoint57c_pre, checkpoint58r_post, checkpoint55j_post, branchpoint-genmake2, checkpoint54a_post, checkpoint46e_pre, checkpoint55h_post, checkpoint58n_post, checkpoint51r_post, checkpoint45b_post, checkpoint51i_post, checkpoint57e_post, release1-branch-end, release1_final_v1, checkpoint55b_post, checkpoint51b_post, release1_p12_pre, checkpoint46c_pre, checkpoint53a_post, checkpoint44f_post, checkpoint47b_post, checkpoint44b_post, checkpoint59e, checkpoint59d, checkpoint59g, checkpoint59f, checkpoint59a, checkpoint55f_post, checkpoint59c, checkpoint59b, checkpoint59h, ecco_c51_e34, checkpoint46h_pre, checkpoint52d_post, checkpoint53g_post, checkpoint46m_post, checkpoint57p_post, checkpint57u_post, checkpoint46a_pre, checkpoint50c_pre, checkpoint45c_post, checkpoint57q_post, ecco_ice2, ecco_ice1, checkpoint44h_post, eckpoint57e_pre, checkpoint46g_post, checkpoint51c_post, checkpoint58k_post, checkpoint52a_pre, checkpoint46i_post, checkpoint58v_post, checkpoint50h_post, checkpoint52i_post, checkpoint50e_pre, checkpoint50i_post, ecco_c44_e25, checkpoint51i_pre, checkpoint48a_post, checkpoint56a_post, checkpoint58l_post, checkpoint53f_post, checkpoint47j_post, checkpoint54a_pre, checkpoint53b_pre, branch-exfmods-tag, checkpoint40pre5, checkpoint57h_done, checkpoint52j_post, checkpoint47f_post, checkpoint50e_post, chkpt44a_pre, ecco_c44_e22, ecco_c44_e23, ecco_c44_e20, ecco_c44_e21, ecco_c44_e26, ecco_c44_e27, ecco_c44_e24, checkpoint57j_post, checkpoint57f_pre, checkpoint46c_post, checkpoint58g_post, ecco-branch-mod1, ecco-branch-mod2, ecco-branch-mod3, ecco-branch-mod4, ecco-branch-mod5, branch-netcdf, checkpoint52l_post, checkpoint58x_post, checkpoint52n_post, checkpoint46e_post, release1_beta1, checkpoint58h_post, checkpoint56c_post, checkpoint58j_post, checkpoint51e_post, checkpoint44b_pre, checkpoint42, checkpoint57a_pre, checkpoint40, checkpoint41, checkpoint46, checkpoint47, checkpoint44, checkpoint45, checkpoint48, checkpoint49, checkpoint57o_post, checkpoint46h_post, checkpoint51o_post, checkpoint50, checkpoint57k_post, checkpoint51f_pre, chkpt44c_post, checkpoint53b_post, checkpoint47h_post, checkpoint52a_post, checkpoint57w_post, checkpoint44f_pre, checkpoint58i_post, checkpoint51g_post, ecco_c52_e35, checkpoint46d_post, checkpoint50b_post, checkpoint58c_post, checkpoint58u_post, release1-branch_branchpoint, checkpoint52f_pre, checkpoint53d_pre, checkpoint58s_post, checkpoint55e_post, checkpoint54c_post, checkpoint51a_post, checkpoint51p_post, checkpoint48g_post, checkpoint51u_post
Branch point for: c24_e25_ice, branch-exfmods-curt, release1_coupled, release1_final, release1-branch, branch-genmake2, release1, branch-nonh, tg2-branch, ecco-branch, release1_50yr, netcdf-sm0, icebear, checkpoint51n_branch
Changes since 1.2: +60 -48 lines
o Modified some flow directives
o Added new flow directives
o Added new adjoint support routines, in particular for
  new exchange routines and new packages debug/, monitor/

1 C /==========================================================\
2 C | SUBROUTINEs adexch_xy_rs adexch_xyz_rs |
3 C | adexch_xy_rl adexch_xyz_rl |
4 C | adexch_xz_rs adexch_yz_rs |
5 C | adexch_xz_rl adexch_yz_rl |
6 C | o adjoint routines to exchange routines |
7 C |==========================================================|
8 C | These routines essentially are calling the original |
9 C | routines in reverse mode. |
10 C | These are regular adjoint routines with no innermost |
11 C | dimension added. |
12 C | Calls to these routines will be generated automatically |
13 C | by TAMC if correct flow directives are given |
14 C | tamc -reverse .... |
15 C | |
16 C | written and tested by Ralf Giering, Jan. 14th 1999 |
17 C | added new S/R's for _xz_ , _yz_ heimbach@mit.edu May-01 |
18 C \==========================================================/
19
20 #include "CPP_EEOPTIONS.h"
21
22 CStartOfInterface
23 SUBROUTINE adexch_xy_rs(
24 I myThid
25 U , adphi
26 & )
27 C /==========================================================\
28 C | SUBROUTINE ADEXCH_XY_RS adjoint of EXCH_XY_RS |
29 C | o Handle exchanges for real*4, two-dimensional arrays. |
30 C |==========================================================|
31 C === Global data ===
32 implicit none
33 #include "SIZE.h"
34 #include "EEPARAMS.h"
35 #include "EESUPPORT.h"
36
37 C === Routine arguments ===
38 C phi - Array who's overlap regions are to be exchanged
39 C myThid - My thread id.
40 _RS adphi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
41 INTEGER myThid
42 CEndOfInterface
43 C == Local variables ==
44 C OL[wens] - Overlap extents in west, east, north, south.
45 C exchWidth[XY] - Extent of regions that will be exchanged.
46 INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY
47 INTEGER mysNx, mysNy, myNz
48
49 OLw = OLx
50 OLe = OLx
51 OLn = OLy
52 OLs = OLy
53 exchWidthX = OLx
54 exchWidthY = OLy
55 mysNx = sNx
56 mysNy = sNy
57 myNz = 1
58 C ** NOTE ** The exchange routine we use here does not
59 C require the preceeding and following barriers.
60 C However, the slow, simple exchange interface
61 C that is calling it here is meant to ensure
62 C that threads are synchronised before exchanges
63 C begine.
64 IF (useCubedSphereExchange) THEN
65 CALL EXCH_RS_CUBE( adphi,
66 I OLw, OLe, OLs, OLn, myNz,
67 I exchWidthX, exchWidthY,
68 I REVERSE_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
69 ELSE
70 CALL EXCH_RS( adphi,
71 I OLw, OLe, OLs, OLn, myNz,
72 I exchWidthX, exchWidthY,
73 I REVERSE_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
74 ENDIF
75
76 RETURN
77 END
78
79
80 CStartOfInterface
81 SUBROUTINE adexch_xy_rl(
82 I myThid
83 U , adphi
84 & )
85 C /==========================================================\
86 C | SUBROUTINE ADEXCH_XY_RL adjoint of EXCH_XY_RL |
87 C | o Handle exchanges for real*8, two-dimensional arrays. |
88 C |==========================================================|
89 C === Global data ===
90 #include "SIZE.h"
91 #include "EEPARAMS.h"
92 #include "EESUPPORT.h"
93
94 C === Routine arguments ===
95 C phi - Array who's overlap regions are to be exchanged
96 C myThid - My thread id.
97 _RL adphi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,nSx,nSy)
98 INTEGER myThid
99 CEndOfInterface
100 C == Local variables ==
101 C OL[wens] - Overlap extents in west, east, north, south.
102 C exchWidth[XY] - Extent of regions that will be exchanged.
103 INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY
104 INTEGER mysNx, mysNy, myNz
105
106 OLw = OLx
107 OLe = OLx
108 OLn = OLy
109 OLs = OLy
110 exchWidthX = OLx
111 exchWidthY = OLy
112 mysNx = sNx
113 mysNy = sNy
114 myNz = 1
115 C ** NOTE ** The exchange routine we use here does not
116 C require the preceeding and following barriers.
117 C However, the slow, simple exchange interface
118 C that is calling it here is meant to ensure
119 C that threads are synchronised before exchanges
120 C begine.
121 IF (useCubedSphereExchange) THEN
122 CALL EXCH_RL_CUBE( adphi,
123 I OLw, OLe, OLs, OLn, myNz,
124 I exchWidthX, exchWidthY,
125 I REVERSE_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
126 ELSE
127 CALL EXCH_RL( adphi,
128 I OLw, OLe, OLs, OLn, myNz,
129 I exchWidthX, exchWidthY,
130 I REVERSE_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
131 ENDIF
132
133 RETURN
134 END
135
136
137 CStartOfInterface
138 SUBROUTINE adexch_xyz_rs(
139 I myThid
140 U , adphi
141 & )
142 C /==========================================================\
143 C | SUBROUTINE ADEXCH_XYZ_RS adjoint of EXCH_XYZ_RS |
144 C | o Handle exchanges for real*4, two-dimensional arrays. |
145 C |==========================================================|
146 C === Global data ===
147 #include "SIZE.h"
148 #include "EEPARAMS.h"
149 #include "EESUPPORT.h"
150
151 C === Routine arguments ===
152 C phi - Array who's overlap regions are to be exchanged
153 C myThid - My thread id.
154 _RS adphi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy)
155 INTEGER myThid
156 CEndOfInterface
157 C == Local variables ==
158 C OL[wens] - Overlap extents in west, east, north, south.
159 C exchWidth[XYZ] - Extent of regions that will be exchanged.
160 INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY
161 INTEGER mysNx, mysNy, myNz
162
163 OLw = OLx
164 OLe = OLx
165 OLn = OLy
166 OLs = OLy
167 exchWidthX = OLx
168 exchWidthY = OLy
169 mysNx = sNx
170 mysNy = sNy
171 myNz = Nr
172 C ** NOTE ** The exchange routine we use here does not
173 C require the preceeding and following barriers.
174 C However, the slow, simple exchange interface
175 C that is calling it here is meant to ensure
176 C that threads are synchronised before exchanges
177 C begine.
178 IF (useCubedSphereExchange) THEN
179 CALL EXCH_RS_CUBE( adphi,
180 I OLw, OLe, OLs, OLn, myNz,
181 I exchWidthX, exchWidthY,
182 I REVERSE_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
183 ELSE
184 CALL EXCH_RS( adphi,
185 I OLw, OLe, OLs, OLn, myNz,
186 I exchWidthX, exchWidthY,
187 I REVERSE_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
188 ENDIF
189
190 RETURN
191 END
192
193
194 CStartOfInterface
195 SUBROUTINE adexch_xyz_rl(
196 I myThid
197 U , adphi
198 & )
199 C /==========================================================\
200 C | SUBROUTINE ADEXCH_XYZ_RL adjoint of EXCH_XYZ_RL |
201 C | o Handle exchanges for real*8, two-dimensional arrays. |
202 C |==========================================================|
203 C === Global data ===
204 #include "SIZE.h"
205 #include "EEPARAMS.h"
206 #include "EESUPPORT.h"
207
208 C === Routine arguments ===
209 C phi - Array who's overlap regions are to be exchanged
210 C myThid - My thread id.
211 _RL adphi(1-OLx:sNx+OLx,1-OLy:sNy+OLy,1:Nr,nSx,nSy)
212 INTEGER myThid
213 CEndOfInterface
214 C == Local variables ==
215 C OL[wens] - Overlap extents in west, east, north, south.
216 C exchWidth[XYZ] - Extent of regions that will be exchanged.
217 INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY
218 INTEGER mysNx, mysNy, myNz
219
220 OLw = OLx
221 OLe = OLx
222 OLn = OLy
223 OLs = OLy
224 exchWidthX = OLx
225 exchWidthY = OLy
226 mysNx = sNx
227 mysNy = sNy
228 myNz = Nr
229 C ** NOTE ** The exchange routine we use here does not
230 C require the preceeding and following barriers.
231 C However, the slow, simple exchange interface
232 C that is calling it here is meant to ensure
233 C that threads are synchronised before exchanges
234 C begine.
235 IF (useCubedSphereExchange) THEN
236 CALL EXCH_RL_CUBE( adphi,
237 I OLw, OLe, OLs, OLn, myNz,
238 I exchWidthX, exchWidthY,
239 I REVERSE_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
240 ELSE
241 CALL EXCH_RL( adphi,
242 I OLw, OLe, OLs, OLn, myNz,
243 I exchWidthX, exchWidthY,
244 I REVERSE_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
245 ENDIF
246
247 RETURN
248 END
249
250
251 CStartOfInterface
252 SUBROUTINE adexch_xz_rs(
253 I myThid
254 U , adphi
255 & )
256 C /==========================================================\
257 C | SUBROUTINE ADEXCH_XZ_RS adjoint of EXCH_XZ_RS |
258 C | o Handle exchanges for real*4, two-dimensional arrays. |
259 C |==========================================================|
260 C === Global data ===
261 #include "SIZE.h"
262 #include "EEPARAMS.h"
263 #include "EESUPPORT.h"
264
265 C === Routine arguments ===
266 C phi - Array who's overlap regions are to be exchanged
267 C myThid - My thread id.
268 _RS adphi(1-OLx:sNx+OLx,1,1:Nr,nSx,nSy)
269 INTEGER myThid
270 CEndOfInterface
271 C == Local variables ==
272 C OL[wens] - Overlap extents in west, east, north, south.
273 C exchWidth[XYZ] - Extent of regions that will be exchanged.
274 INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY
275 INTEGER mysNx, mysNy, myNz
276
277 OLw = OLx
278 OLe = OLx
279 OLn = 0
280 OLs = 0
281 exchWidthX = OLx
282 exchWidthY = 0
283 mysNx = sNx
284 mysNy = 1
285 myNz = Nr
286 C ** NOTE ** The exchange routine we use here does not
287 C require the preceeding and following barriers.
288 C However, the slow, simple exchange interface
289 C that is calling it here is meant to ensure
290 C that threads are synchronised before exchanges
291 C begine.
292 CALL EXCH_RS( adphi,
293 I OLw, OLe, OLs, OLn, myNz,
294 I exchWidthX, exchWidthY,
295 I REVERSE_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
296
297 RETURN
298 END
299
300
301 CStartOfInterface
302 SUBROUTINE adexch_xz_rl(
303 I myThid
304 U , adphi
305 & )
306 C /==========================================================\
307 C | SUBROUTINE ADEXCH_XZ_RL adjoint of EXCH_XZ_RL |
308 C | o Handle exchanges for real*8, two-dimensional arrays. |
309 C |==========================================================|
310 C === Global data ===
311 #include "SIZE.h"
312 #include "EEPARAMS.h"
313 #include "EESUPPORT.h"
314
315 C === Routine arguments ===
316 C phi - Array who's overlap regions are to be exchanged
317 C myThid - My thread id.
318 _RL adphi(1-OLx:sNx+OLx,1,1:Nr,nSx,nSy)
319 INTEGER myThid
320 CEndOfInterface
321 C == Local variables ==
322 C OL[wens] - Overlap extents in west, east, north, south.
323 C exchWidth[XYZ] - Extent of regions that will be exchanged.
324 INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY
325 INTEGER mysNx, mysNy, myNz
326
327 OLw = OLx
328 OLe = OLx
329 OLn = 0
330 OLs = 0
331 exchWidthX = OLx
332 exchWidthY = 0
333 mysNx = sNx
334 mysNy = 1
335 myNz = Nr
336 C ** NOTE ** The exchange routine we use here does not
337 C require the preceeding and following barriers.
338 C However, the slow, simple exchange interface
339 C that is calling it here is meant to ensure
340 C that threads are synchronised before exchanges
341 C begine.
342 CALL EXCH_RL( adphi,
343 I OLw, OLe, OLs, OLn, myNz,
344 I exchWidthX, exchWidthY,
345 I REVERSE_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
346
347 RETURN
348 END
349
350
351 CStartOfInterface
352 SUBROUTINE adexch_yz_rs(
353 I myThid
354 U , adphi
355 & )
356 C /==========================================================\
357 C | SUBROUTINE ADEXCH_YZ_RS adjoint of EXCH_YZ_RS |
358 C | o Handle exchanges for real*4, two-dimensional arrays. |
359 C |==========================================================|
360 C === Global data ===
361 #include "SIZE.h"
362 #include "EEPARAMS.h"
363 #include "EESUPPORT.h"
364
365 C === Routine arguments ===
366 C phi - Array who's overlap regions are to be exchanged
367 C myThid - My thread id.
368 _RS adphi(1,1-OLy:sNy+OLy,1:Nr,nSx,nSy)
369 INTEGER myThid
370 CEndOfInterface
371 C == Local variables ==
372 C OL[wens] - Overlap extents in west, east, north, south.
373 C exchWidth[XYZ] - Extent of regions that will be exchanged.
374 INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY
375 INTEGER mysNx, mysNy, myNz
376
377 OLw = 0
378 OLe = 0
379 OLn = OLy
380 OLs = OLy
381 exchWidthX = 0
382 exchWidthY = OLy
383 mysNx = 1
384 mysNy = sNy
385 myNz = Nr
386 C ** NOTE ** The exchange routine we use here does not
387 C require the preceeding and following barriers.
388 C However, the slow, simple exchange interface
389 C that is calling it here is meant to ensure
390 C that threads are synchronised before exchanges
391 C begine.
392 CALL EXCH_RS( adphi,
393 I OLw, OLe, OLs, OLn, myNz,
394 I exchWidthX, exchWidthY,
395 I REVERSE_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
396
397 RETURN
398 END
399
400
401 CStartOfInterface
402 SUBROUTINE adexch_yz_rl(
403 I myThid
404 U , adphi
405 & )
406 C /==========================================================\
407 C | SUBROUTINE ADEXCH_YZ_RL adjoint of EXCH_YZ_RL |
408 C | o Handle exchanges for real*8, two-dimensional arrays. |
409 C |==========================================================|
410 C === Global data ===
411 #include "SIZE.h"
412 #include "EEPARAMS.h"
413 #include "EESUPPORT.h"
414
415 C === Routine arguments ===
416 C phi - Array who's overlap regions are to be exchanged
417 C myThid - My thread id.
418 _RL adphi(1,1-OLy:sNy+OLy,1:Nr,nSx,nSy)
419 INTEGER myThid
420 CEndOfInterface
421 C == Local variables ==
422 C OL[wens] - Overlap extents in west, east, north, south.
423 C exchWidth[XYZ] - Extent of regions that will be exchanged.
424 INTEGER OLw, OLe, OLn, OLs, exchWidthX, exchWidthY
425 INTEGER mysNx, mysNy, myNz
426
427 OLw = 0
428 OLe = 0
429 OLn = OLy
430 OLs = OLy
431 exchWidthX = 0
432 exchWidthY = OLy
433 mysNx = 1
434 mysNy = sNy
435 myNz = Nr
436 C ** NOTE ** The exchange routine we use here does not
437 C require the preceeding and following barriers.
438 C However, the slow, simple exchange interface
439 C that is calling it here is meant to ensure
440 C that threads are synchronised before exchanges
441 C begine.
442 CALL EXCH_RL( adphi,
443 I OLw, OLe, OLs, OLn, myNz,
444 I exchWidthX, exchWidthY,
445 I REVERSE_SIMULATION, EXCH_UPDATE_CORNERS, myThid )
446
447 RETURN
448 END

  ViewVC Help
Powered by ViewVC 1.1.22