FMS  2025.04
Flexible Modeling System
mpp_domains_reduce.inc
1 ! -*-f90-*-
2 
3 !***********************************************************************
4 !* Apache License 2.0
5 !*
6 !* This file is part of the GFDL Flexible Modeling System (FMS).
7 !*
8 !* Licensed under the Apache License, Version 2.0 (the "License");
9 !* you may not use this file except in compliance with the License.
10 !* You may obtain a copy of the License at
11 !*
12 !* http://www.apache.org/licenses/LICENSE-2.0
13 !*
14 !* FMS is distributed in the hope that it will be useful, but WITHOUT
15 !* WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied;
16 !* without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
17 !* PARTICULAR PURPOSE. See the License for the specific language
18 !* governing permissions and limitations under the License.
19 !***********************************************************************
20 !> @file
21 !> @brief Routines for calculating data from distributed arrays
22 
23 !> @addtogroup mpp_domains_mod
24 !> @{
25 
26 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
27 ! !
28 ! MPP_GLOBAL_REDUCE: get global max/min of field !
29 ! !
30 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
31 
32 #undef MPP_GLOBAL_REDUCE_2D_
33 #define MPP_GLOBAL_REDUCE_2D_ mpp_global_max_r8_2d
34 #undef MPP_GLOBAL_REDUCE_3D_
35 #define MPP_GLOBAL_REDUCE_3D_ mpp_global_max_r8_3d
36 #undef MPP_GLOBAL_REDUCE_4D_
37 #define MPP_GLOBAL_REDUCE_4D_ mpp_global_max_r8_4d
38 #undef MPP_GLOBAL_REDUCE_5D_
39 #define MPP_GLOBAL_REDUCE_5D_ mpp_global_max_r8_5d
40 #undef MPP_TYPE_
41 #define MPP_TYPE_ real(r8_kind)
42 #undef REDUCE_VAL_
43 #define REDUCE_VAL_ maxval
44 #undef REDUCE_LOC_
45 #define REDUCE_LOC_ maxloc
46 #undef MPP_REDUCE_
47 #define MPP_REDUCE_ mpp_max
48 #include <mpp_global_reduce.fh>
49 
50 #undef MPP_GLOBAL_REDUCE_2D_
51 #define MPP_GLOBAL_REDUCE_2D_ mpp_global_min_r8_2d
52 #undef MPP_GLOBAL_REDUCE_3D_
53 #define MPP_GLOBAL_REDUCE_3D_ mpp_global_min_r8_3d
54 #undef MPP_GLOBAL_REDUCE_4D_
55 #define MPP_GLOBAL_REDUCE_4D_ mpp_global_min_r8_4d
56 #undef MPP_GLOBAL_REDUCE_5D_
57 #define MPP_GLOBAL_REDUCE_5D_ mpp_global_min_r8_5d
58 #undef MPP_TYPE_
59 #define MPP_TYPE_ real(r8_kind)
60 #undef REDUCE_VAL_
61 #define REDUCE_VAL_ minval
62 #undef REDUCE_LOC_
63 #define REDUCE_LOC_ minloc
64 #undef MPP_REDUCE_
65 #define MPP_REDUCE_ mpp_min
66 #include <mpp_global_reduce.fh>
67 
68 #undef MPP_GLOBAL_REDUCE_2D_
69 #define MPP_GLOBAL_REDUCE_2D_ mpp_global_max_r4_2d
70 #undef MPP_GLOBAL_REDUCE_3D_
71 #define MPP_GLOBAL_REDUCE_3D_ mpp_global_max_r4_3d
72 #undef MPP_GLOBAL_REDUCE_4D_
73 #define MPP_GLOBAL_REDUCE_4D_ mpp_global_max_r4_4d
74 #undef MPP_GLOBAL_REDUCE_5D_
75 #define MPP_GLOBAL_REDUCE_5D_ mpp_global_max_r4_5d
76 #undef MPP_TYPE_
77 #define MPP_TYPE_ real(r4_kind)
78 #undef REDUCE_VAL_
79 #define REDUCE_VAL_ maxval
80 #undef REDUCE_LOC_
81 #define REDUCE_LOC_ maxloc
82 #undef MPP_REDUCE_
83 #define MPP_REDUCE_ mpp_max
84 #include <mpp_global_reduce.fh>
85 
86 #undef MPP_GLOBAL_REDUCE_2D_
87 #define MPP_GLOBAL_REDUCE_2D_ mpp_global_min_r4_2d
88 #undef MPP_GLOBAL_REDUCE_3D_
89 #define MPP_GLOBAL_REDUCE_3D_ mpp_global_min_r4_3d
90 #undef MPP_GLOBAL_REDUCE_4D_
91 #define MPP_GLOBAL_REDUCE_4D_ mpp_global_min_r4_4d
92 #undef MPP_GLOBAL_REDUCE_5D_
93 #define MPP_GLOBAL_REDUCE_5D_ mpp_global_min_r4_5d
94 #undef MPP_TYPE_
95 #define MPP_TYPE_ real(r4_kind)
96 #undef REDUCE_VAL_
97 #define REDUCE_VAL_ minval
98 #undef REDUCE_LOC_
99 #define REDUCE_LOC_ minloc
100 #undef MPP_REDUCE_
101 #define MPP_REDUCE_ mpp_min
102 #include <mpp_global_reduce.fh>
103 
104 #undef MPP_GLOBAL_REDUCE_2D_
105 #define MPP_GLOBAL_REDUCE_2D_ mpp_global_max_i8_2d
106 #undef MPP_GLOBAL_REDUCE_3D_
107 #define MPP_GLOBAL_REDUCE_3D_ mpp_global_max_i8_3d
108 #undef MPP_GLOBAL_REDUCE_4D_
109 #define MPP_GLOBAL_REDUCE_4D_ mpp_global_max_i8_4d
110 #undef MPP_GLOBAL_REDUCE_5D_
111 #define MPP_GLOBAL_REDUCE_5D_ mpp_global_max_i8_5d
112 #undef MPP_TYPE_
113 #define MPP_TYPE_ integer(i8_kind)
114 #undef REDUCE_VAL_
115 #define REDUCE_VAL_ maxval
116 #undef REDUCE_LOC_
117 #define REDUCE_LOC_ maxloc
118 #undef MPP_REDUCE_
119 #define MPP_REDUCE_ mpp_max
120 #include <mpp_global_reduce.fh>
121 
122 #undef MPP_GLOBAL_REDUCE_2D_
123 #define MPP_GLOBAL_REDUCE_2D_ mpp_global_min_i8_2d
124 #undef MPP_GLOBAL_REDUCE_3D_
125 #define MPP_GLOBAL_REDUCE_3D_ mpp_global_min_i8_3d
126 #undef MPP_GLOBAL_REDUCE_4D_
127 #define MPP_GLOBAL_REDUCE_4D_ mpp_global_min_i8_4d
128 #undef MPP_GLOBAL_REDUCE_5D_
129 #define MPP_GLOBAL_REDUCE_5D_ mpp_global_min_i8_5d
130 #undef MPP_TYPE_
131 #define MPP_TYPE_ integer(i8_kind)
132 #undef REDUCE_VAL_
133 #define REDUCE_VAL_ minval
134 #undef REDUCE_LOC_
135 #define REDUCE_LOC_ minloc
136 #undef MPP_REDUCE_
137 #define MPP_REDUCE_ mpp_min
138 #include <mpp_global_reduce.fh>
139 
140 #undef MPP_GLOBAL_REDUCE_2D_
141 #define MPP_GLOBAL_REDUCE_2D_ mpp_global_max_i4_2d
142 #undef MPP_GLOBAL_REDUCE_3D_
143 #define MPP_GLOBAL_REDUCE_3D_ mpp_global_max_i4_3d
144 #undef MPP_GLOBAL_REDUCE_4D_
145 #define MPP_GLOBAL_REDUCE_4D_ mpp_global_max_i4_4d
146 #undef MPP_GLOBAL_REDUCE_5D_
147 #define MPP_GLOBAL_REDUCE_5D_ mpp_global_max_i4_5d
148 #undef MPP_TYPE_
149 #define MPP_TYPE_ integer(i4_kind)
150 #undef REDUCE_VAL_
151 #define REDUCE_VAL_ maxval
152 #undef REDUCE_LOC_
153 #define REDUCE_LOC_ maxloc
154 #undef MPP_REDUCE_
155 #define MPP_REDUCE_ mpp_max
156 #include <mpp_global_reduce.fh>
157 
158 #undef MPP_GLOBAL_REDUCE_2D_
159 #define MPP_GLOBAL_REDUCE_2D_ mpp_global_min_i4_2d
160 #undef MPP_GLOBAL_REDUCE_3D_
161 #define MPP_GLOBAL_REDUCE_3D_ mpp_global_min_i4_3d
162 #undef MPP_GLOBAL_REDUCE_4D_
163 #define MPP_GLOBAL_REDUCE_4D_ mpp_global_min_i4_4d
164 #undef MPP_GLOBAL_REDUCE_5D_
165 #define MPP_GLOBAL_REDUCE_5D_ mpp_global_min_i4_5d
166 #undef MPP_TYPE_
167 #define MPP_TYPE_ integer(i4_kind)
168 #undef REDUCE_VAL_
169 #define REDUCE_VAL_ minval
170 #undef REDUCE_LOC_
171 #define REDUCE_LOC_ minloc
172 #undef MPP_REDUCE_
173 #define MPP_REDUCE_ mpp_min
174 #include <mpp_global_reduce.fh>
175 
176 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
177 ! !
178 ! MPP_GLOBAL_SUM: global sum of field !
179 ! !
180 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
181 #define DO_EFP_SUM_
182 #undef MPP_GLOBAL_SUM_
183 #define MPP_GLOBAL_SUM_ mpp_global_sum_r8_2d
184 #undef MPP_EXTRA_INDICES_
185 #define MPP_EXTRA_INDICES_
186 #undef MPP_TYPE_
187 #define MPP_TYPE_ real(r8_kind)
188 #include <mpp_global_sum.fh>
189 
190 #undef MPP_GLOBAL_SUM_
191 #define MPP_GLOBAL_SUM_ mpp_global_sum_r8_3d
192 #undef MPP_EXTRA_INDICES_
193 #define MPP_EXTRA_INDICES_ ,:
194 #undef MPP_TYPE_
195 #define MPP_TYPE_ real(r8_kind)
196 #include <mpp_global_sum.fh>
197 
198 #undef MPP_GLOBAL_SUM_
199 #define MPP_GLOBAL_SUM_ mpp_global_sum_r8_4d
200 #undef MPP_EXTRA_INDICES_
201 #define MPP_EXTRA_INDICES_ ,:,:
202 #undef MPP_TYPE_
203 #define MPP_TYPE_ real(r8_kind)
204 #include <mpp_global_sum.fh>
205 
206 #undef MPP_GLOBAL_SUM_
207 #define MPP_GLOBAL_SUM_ mpp_global_sum_r8_5d
208 #undef MPP_EXTRA_INDICES_
209 #define MPP_EXTRA_INDICES_ ,:,:,:
210 #undef MPP_TYPE_
211 #define MPP_TYPE_ real(r8_kind)
212 #include <mpp_global_sum.fh>
213 
214 #undef MPP_GLOBAL_SUM_
215 #define MPP_GLOBAL_SUM_ mpp_global_sum_r4_2d
216 #undef MPP_EXTRA_INDICES_
217 #define MPP_EXTRA_INDICES_
218 #undef MPP_TYPE_
219 #define MPP_TYPE_ real(r4_kind)
220 #include <mpp_global_sum.fh>
221 
222 #undef MPP_GLOBAL_SUM_
223 #define MPP_GLOBAL_SUM_ mpp_global_sum_r4_3d
224 #undef MPP_EXTRA_INDICES_
225 #define MPP_EXTRA_INDICES_ ,:
226 #undef MPP_TYPE_
227 #define MPP_TYPE_ real(r4_kind)
228 #include <mpp_global_sum.fh>
229 
230 #undef MPP_GLOBAL_SUM_
231 #define MPP_GLOBAL_SUM_ mpp_global_sum_r4_4d
232 #undef MPP_EXTRA_INDICES_
233 #define MPP_EXTRA_INDICES_ ,:,:
234 #undef MPP_TYPE_
235 #define MPP_TYPE_ real(r4_kind)
236 #include <mpp_global_sum.fh>
237 
238 #undef MPP_GLOBAL_SUM_
239 #define MPP_GLOBAL_SUM_ mpp_global_sum_r4_5d
240 #undef MPP_EXTRA_INDICES_
241 #define MPP_EXTRA_INDICES_ ,:,:,:
242 #undef MPP_TYPE_
243 #define MPP_TYPE_ real(r4_kind)
244 #include <mpp_global_sum.fh>
245 
246 #undef DO_EFP_SUM_
247 
248 #ifdef OVERLOAD_C4
249 #undef MPP_GLOBAL_SUM_
250 #define MPP_GLOBAL_SUM_ mpp_global_sum_c4_2d
251 #undef MPP_EXTRA_INDICES_
252 #define MPP_EXTRA_INDICES_
253 #undef MPP_TYPE_
254 #define MPP_TYPE_ complex(c4_kind)
255 #include <mpp_global_sum.fh>
256 
257 #undef MPP_GLOBAL_SUM_
258 #define MPP_GLOBAL_SUM_ mpp_global_sum_c4_3d
259 #undef MPP_EXTRA_INDICES_
260 #define MPP_EXTRA_INDICES_ ,:
261 #undef MPP_TYPE_
262 #define MPP_TYPE_ complex(c4_kind)
263 #include <mpp_global_sum.fh>
264 
265 #undef MPP_GLOBAL_SUM_
266 #define MPP_GLOBAL_SUM_ mpp_global_sum_c4_4d
267 #undef MPP_EXTRA_INDICES_
268 #define MPP_EXTRA_INDICES_ ,:,:
269 #undef MPP_TYPE_
270 #define MPP_TYPE_ complex(c4_kind)
271 #include <mpp_global_sum.fh>
272 
273 #undef MPP_GLOBAL_SUM_
274 #define MPP_GLOBAL_SUM_ mpp_global_sum_c4_5d
275 #undef MPP_EXTRA_INDICES_
276 #define MPP_EXTRA_INDICES_ ,:,:,:
277 #undef MPP_TYPE_
278 #define MPP_TYPE_ complex(c4_kind)
279 #include <mpp_global_sum.fh>
280 #endif
281 
282 #ifdef OVERLOAD_C8
283 #undef MPP_GLOBAL_SUM_
284 #define MPP_GLOBAL_SUM_ mpp_global_sum_c8_2d
285 #undef MPP_EXTRA_INDICES_
286 #define MPP_EXTRA_INDICES_
287 #undef MPP_TYPE_
288 #define MPP_TYPE_ complex(c8_kind)
289 #include <mpp_global_sum.fh>
290 
291 #undef MPP_GLOBAL_SUM_
292 #define MPP_GLOBAL_SUM_ mpp_global_sum_c8_3d
293 #undef MPP_EXTRA_INDICES_
294 #define MPP_EXTRA_INDICES_ ,:
295 #undef MPP_TYPE_
296 #define MPP_TYPE_ complex(c8_kind)
297 #include <mpp_global_sum.fh>
298 
299 #undef MPP_GLOBAL_SUM_
300 #define MPP_GLOBAL_SUM_ mpp_global_sum_c8_4d
301 #undef MPP_EXTRA_INDICES_
302 #define MPP_EXTRA_INDICES_ ,:,:
303 #undef MPP_TYPE_
304 #define MPP_TYPE_ complex(c8_kind)
305 #include <mpp_global_sum.fh>
306 
307 #undef MPP_GLOBAL_SUM_
308 #define MPP_GLOBAL_SUM_ mpp_global_sum_c8_5d
309 #undef MPP_EXTRA_INDICES_
310 #define MPP_EXTRA_INDICES_ ,:,:,:
311 #undef MPP_TYPE_
312 #define MPP_TYPE_ complex(c8_kind)
313 #include <mpp_global_sum.fh>
314 #endif
315 
316 #undef MPP_GLOBAL_SUM_
317 #define MPP_GLOBAL_SUM_ mpp_global_sum_i8_2d
318 #undef MPP_EXTRA_INDICES_
319 #define MPP_EXTRA_INDICES_
320 #undef MPP_TYPE_
321 #define MPP_TYPE_ integer(i8_kind)
322 #include <mpp_global_sum.fh>
323 
324 #undef MPP_GLOBAL_SUM_
325 #define MPP_GLOBAL_SUM_ mpp_global_sum_i8_3d
326 #undef MPP_EXTRA_INDICES_
327 #define MPP_EXTRA_INDICES_ ,:
328 #undef MPP_TYPE_
329 #define MPP_TYPE_ integer(i8_kind)
330 #include <mpp_global_sum.fh>
331 
332 #undef MPP_GLOBAL_SUM_
333 #define MPP_GLOBAL_SUM_ mpp_global_sum_i8_4d
334 #undef MPP_EXTRA_INDICES_
335 #define MPP_EXTRA_INDICES_ ,:,:
336 #undef MPP_TYPE_
337 #define MPP_TYPE_ integer(i8_kind)
338 #include <mpp_global_sum.fh>
339 
340 #undef MPP_GLOBAL_SUM_
341 #define MPP_GLOBAL_SUM_ mpp_global_sum_i8_5d
342 #undef MPP_EXTRA_INDICES_
343 #define MPP_EXTRA_INDICES_ ,:,:,:
344 #undef MPP_TYPE_
345 #define MPP_TYPE_ integer(i8_kind)
346 #include <mpp_global_sum.fh>
347 
348 #undef MPP_GLOBAL_SUM_
349 #define MPP_GLOBAL_SUM_ mpp_global_sum_i4_2d
350 #undef MPP_EXTRA_INDICES_
351 #define MPP_EXTRA_INDICES_
352 #undef MPP_TYPE_
353 #define MPP_TYPE_ integer(i4_kind)
354 #include <mpp_global_sum.fh>
355 
356 #undef MPP_GLOBAL_SUM_
357 #define MPP_GLOBAL_SUM_ mpp_global_sum_i4_3d
358 #undef MPP_EXTRA_INDICES_
359 #define MPP_EXTRA_INDICES_ ,:
360 #undef MPP_TYPE_
361 #define MPP_TYPE_ integer(i4_kind)
362 #include <mpp_global_sum.fh>
363 
364 #undef MPP_GLOBAL_SUM_
365 #define MPP_GLOBAL_SUM_ mpp_global_sum_i4_4d
366 #undef MPP_EXTRA_INDICES_
367 #define MPP_EXTRA_INDICES_ ,:,:
368 #undef MPP_TYPE_
369 #define MPP_TYPE_ integer(i4_kind)
370 #include <mpp_global_sum.fh>
371 
372 #undef MPP_GLOBAL_SUM_
373 #define MPP_GLOBAL_SUM_ mpp_global_sum_i4_5d
374 #undef MPP_EXTRA_INDICES_
375 #define MPP_EXTRA_INDICES_ ,:,:,:
376 #undef MPP_TYPE_
377 #define MPP_TYPE_ integer(i4_kind)
378 #include <mpp_global_sum.fh>
379 
380 
381 !gag
382 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
383 ! !
384 ! MPP_GLOBAL_SUM_TL: global sum of forward and tangent-linear fields !
385 ! !
386 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
387 
388 #undef MPP_GLOBAL_SUM_TL_
389 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_r8_2d
390 #undef MPP_EXTRA_INDICES_
391 #define MPP_EXTRA_INDICES_
392 #undef MPP_TYPE_
393 #define MPP_TYPE_ real(r8_kind)
394 #include <mpp_global_sum_tl.fh>
395 
396 #undef MPP_GLOBAL_SUM_TL_
397 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_r8_3d
398 #undef MPP_EXTRA_INDICES_
399 #define MPP_EXTRA_INDICES_ ,:
400 #undef MPP_TYPE_
401 #define MPP_TYPE_ real(r8_kind)
402 #include <mpp_global_sum_tl.fh>
403 
404 #undef MPP_GLOBAL_SUM_TL_
405 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_r8_4d
406 #undef MPP_EXTRA_INDICES_
407 #define MPP_EXTRA_INDICES_ ,:,:
408 #undef MPP_TYPE_
409 #define MPP_TYPE_ real(r8_kind)
410 #include <mpp_global_sum_tl.fh>
411 
412 #undef MPP_GLOBAL_SUM_TL_
413 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_r8_5d
414 #undef MPP_EXTRA_INDICES_
415 #define MPP_EXTRA_INDICES_ ,:,:,:
416 #undef MPP_TYPE_
417 #define MPP_TYPE_ real(r8_kind)
418 #include <mpp_global_sum_tl.fh>
419 
420 #ifdef OVERLOAD_C8
421 #undef MPP_GLOBAL_SUM_TL_
422 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_c8_2d
423 #undef MPP_EXTRA_INDICES_
424 #define MPP_EXTRA_INDICES_
425 #undef MPP_TYPE_
426 #define MPP_TYPE_ complex(c8_kind)
427 #include <mpp_global_sum_tl.fh>
428 
429 #undef MPP_GLOBAL_SUM_TL_
430 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_c8_3d
431 #undef MPP_EXTRA_INDICES_
432 #define MPP_EXTRA_INDICES_ ,:
433 #undef MPP_TYPE_
434 #define MPP_TYPE_ complex(c8_kind)
435 #include <mpp_global_sum_tl.fh>
436 
437 #undef MPP_GLOBAL_SUM_TL_
438 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_c8_4d
439 #undef MPP_EXTRA_INDICES_
440 #define MPP_EXTRA_INDICES_ ,:,:
441 #undef MPP_TYPE_
442 #define MPP_TYPE_ complex(c8_kind)
443 #include <mpp_global_sum_tl.fh>
444 
445 #undef MPP_GLOBAL_SUM_TL_
446 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_c8_5d
447 #undef MPP_EXTRA_INDICES_
448 #define MPP_EXTRA_INDICES_ ,:,:,:
449 #undef MPP_TYPE_
450 #define MPP_TYPE_ complex(c8_kind)
451 #include <mpp_global_sum_tl.fh>
452 #endif
453 
454 #undef MPP_GLOBAL_SUM_TL_
455 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_r4_2d
456 #undef MPP_EXTRA_INDICES_
457 #define MPP_EXTRA_INDICES_
458 #undef MPP_TYPE_
459 #define MPP_TYPE_ real(r4_kind)
460 #include <mpp_global_sum_tl.fh>
461 
462 #undef MPP_GLOBAL_SUM_TL_
463 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_r4_3d
464 #undef MPP_EXTRA_INDICES_
465 #define MPP_EXTRA_INDICES_ ,:
466 #undef MPP_TYPE_
467 #define MPP_TYPE_ real(r4_kind)
468 #include <mpp_global_sum_tl.fh>
469 
470 #undef MPP_GLOBAL_SUM_TL_
471 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_r4_4d
472 #undef MPP_EXTRA_INDICES_
473 #define MPP_EXTRA_INDICES_ ,:,:
474 #undef MPP_TYPE_
475 #define MPP_TYPE_ real(r4_kind)
476 #include <mpp_global_sum_tl.fh>
477 
478 #undef MPP_GLOBAL_SUM_TL_
479 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_r4_5d
480 #undef MPP_EXTRA_INDICES_
481 #define MPP_EXTRA_INDICES_ ,:,:,:
482 #undef MPP_TYPE_
483 #define MPP_TYPE_ real(r4_kind)
484 #include <mpp_global_sum_tl.fh>
485 
486 #ifdef OVERLOAD_C4
487 #undef MPP_GLOBAL_SUM_TL_
488 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_c4_2d
489 #undef MPP_EXTRA_INDICES_
490 #define MPP_EXTRA_INDICES_
491 #undef MPP_TYPE_
492 #define MPP_TYPE_ complex(c4_kind)
493 #include <mpp_global_sum_tl.fh>
494 
495 #undef MPP_GLOBAL_SUM_TL_
496 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_c4_3d
497 #undef MPP_EXTRA_INDICES_
498 #define MPP_EXTRA_INDICES_ ,:
499 #undef MPP_TYPE_
500 #define MPP_TYPE_ complex(c4_kind)
501 #include <mpp_global_sum_tl.fh>
502 
503 #undef MPP_GLOBAL_SUM_TL_
504 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_c4_4d
505 #undef MPP_EXTRA_INDICES_
506 #define MPP_EXTRA_INDICES_ ,:,:
507 #undef MPP_TYPE_
508 #define MPP_TYPE_ complex(c4_kind)
509 #include <mpp_global_sum_tl.fh>
510 
511 #undef MPP_GLOBAL_SUM_TL_
512 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_c4_5d
513 #undef MPP_EXTRA_INDICES_
514 #define MPP_EXTRA_INDICES_ ,:,:,:
515 #undef MPP_TYPE_
516 #define MPP_TYPE_ complex(c4_kind)
517 #include <mpp_global_sum_tl.fh>
518 #endif
519 
520 #undef MPP_GLOBAL_SUM_TL_
521 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_i8_2d
522 #undef MPP_EXTRA_INDICES_
523 #define MPP_EXTRA_INDICES_
524 #undef MPP_TYPE_
525 #define MPP_TYPE_ integer(i8_kind)
526 #include <mpp_global_sum_tl.fh>
527 
528 #undef MPP_GLOBAL_SUM_TL_
529 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_i8_3d
530 #undef MPP_EXTRA_INDICES_
531 #define MPP_EXTRA_INDICES_ ,:
532 #undef MPP_TYPE_
533 #define MPP_TYPE_ integer(i8_kind)
534 #include <mpp_global_sum_tl.fh>
535 
536 #undef MPP_GLOBAL_SUM_TL_
537 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_i8_4d
538 #undef MPP_EXTRA_INDICES_
539 #define MPP_EXTRA_INDICES_ ,:,:
540 #undef MPP_TYPE_
541 #define MPP_TYPE_ integer(i8_kind)
542 #include <mpp_global_sum_tl.fh>
543 
544 #undef MPP_GLOBAL_SUM_TL_
545 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_i8_5d
546 #undef MPP_EXTRA_INDICES_
547 #define MPP_EXTRA_INDICES_ ,:,:,:
548 #undef MPP_TYPE_
549 #define MPP_TYPE_ integer(i8_kind)
550 #include <mpp_global_sum_tl.fh>
551 
552 #undef MPP_GLOBAL_SUM_TL_
553 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_i4_2d
554 #undef MPP_EXTRA_INDICES_
555 #define MPP_EXTRA_INDICES_
556 #undef MPP_TYPE_
557 #define MPP_TYPE_ integer(i4_kind)
558 #include <mpp_global_sum_tl.fh>
559 
560 #undef MPP_GLOBAL_SUM_TL_
561 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_i4_3d
562 #undef MPP_EXTRA_INDICES_
563 #define MPP_EXTRA_INDICES_ ,:
564 #undef MPP_TYPE_
565 #define MPP_TYPE_ integer(i4_kind)
566 #include <mpp_global_sum_tl.fh>
567 
568 #undef MPP_GLOBAL_SUM_TL_
569 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_i4_4d
570 #undef MPP_EXTRA_INDICES_
571 #define MPP_EXTRA_INDICES_ ,:,:
572 #undef MPP_TYPE_
573 #define MPP_TYPE_ integer(i4_kind)
574 #include <mpp_global_sum_tl.fh>
575 
576 #undef MPP_GLOBAL_SUM_TL_
577 #define MPP_GLOBAL_SUM_TL_ mpp_global_sum_tl_i4_5d
578 #undef MPP_EXTRA_INDICES_
579 #define MPP_EXTRA_INDICES_ ,:,:,:
580 #undef MPP_TYPE_
581 #define MPP_TYPE_ integer(i4_kind)
582 #include <mpp_global_sum_tl.fh>
583 !gag
584 
585 !bnc
586 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
587 ! !
588 ! MPP_GLOBAL_SUM_AD: global adjoint sum of field !
589 ! !
590 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
591 
592 #undef MPP_GLOBAL_SUM_AD_
593 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_r8_2d
594 #undef MPP_EXTRA_INDICES_
595 #define MPP_EXTRA_INDICES_
596 #undef MPP_TYPE_
597 #define MPP_TYPE_ real(r8_kind)
598 #include <mpp_global_sum_ad.fh>
599 
600 #undef MPP_GLOBAL_SUM_AD_
601 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_r8_3d
602 #undef MPP_EXTRA_INDICES_
603 #define MPP_EXTRA_INDICES_ ,:
604 #undef MPP_TYPE_
605 #define MPP_TYPE_ real(r8_kind)
606 #include <mpp_global_sum_ad.fh>
607 
608 #undef MPP_GLOBAL_SUM_AD_
609 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_r8_4d
610 #undef MPP_EXTRA_INDICES_
611 #define MPP_EXTRA_INDICES_ ,:,:
612 #undef MPP_TYPE_
613 #define MPP_TYPE_ real(r8_kind)
614 #include <mpp_global_sum_ad.fh>
615 
616 #undef MPP_GLOBAL_SUM_AD_
617 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_r8_5d
618 #undef MPP_EXTRA_INDICES_
619 #define MPP_EXTRA_INDICES_ ,:,:,:
620 #undef MPP_TYPE_
621 #define MPP_TYPE_ real(r8_kind)
622 #include <mpp_global_sum_ad.fh>
623 
624 #ifdef OVERLOAD_C8
625 #undef MPP_GLOBAL_SUM_AD_
626 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_c8_2d
627 #undef MPP_EXTRA_INDICES_
628 #define MPP_EXTRA_INDICES_
629 #undef MPP_TYPE_
630 #define MPP_TYPE_ complex(c8_kind)
631 #include <mpp_global_sum_ad.fh>
632 
633 #undef MPP_GLOBAL_SUM_AD_
634 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_c8_3d
635 #undef MPP_EXTRA_INDICES_
636 #define MPP_EXTRA_INDICES_ ,:
637 #undef MPP_TYPE_
638 #define MPP_TYPE_ complex(c8_kind)
639 #include <mpp_global_sum_ad.fh>
640 
641 #undef MPP_GLOBAL_SUM_AD_
642 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_c8_4d
643 #undef MPP_EXTRA_INDICES_
644 #define MPP_EXTRA_INDICES_ ,:,:
645 #undef MPP_TYPE_
646 #define MPP_TYPE_ complex(c8_kind)
647 #include <mpp_global_sum_ad.fh>
648 
649 #undef MPP_GLOBAL_SUM_AD_
650 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_c8_5d
651 #undef MPP_EXTRA_INDICES_
652 #define MPP_EXTRA_INDICES_ ,:,:,:
653 #undef MPP_TYPE_
654 #define MPP_TYPE_ complex(c8_kind)
655 #include <mpp_global_sum_ad.fh>
656 #endif
657 
658 #undef MPP_GLOBAL_SUM_AD_
659 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_r4_2d
660 #undef MPP_EXTRA_INDICES_
661 #define MPP_EXTRA_INDICES_
662 #undef MPP_TYPE_
663 #define MPP_TYPE_ real(r4_kind)
664 #include <mpp_global_sum_ad.fh>
665 
666 #undef MPP_GLOBAL_SUM_AD_
667 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_r4_3d
668 #undef MPP_EXTRA_INDICES_
669 #define MPP_EXTRA_INDICES_ ,:
670 #undef MPP_TYPE_
671 #define MPP_TYPE_ real(r4_kind)
672 #include <mpp_global_sum_ad.fh>
673 
674 #undef MPP_GLOBAL_SUM_AD_
675 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_r4_4d
676 #undef MPP_EXTRA_INDICES_
677 #define MPP_EXTRA_INDICES_ ,:,:
678 #undef MPP_TYPE_
679 #define MPP_TYPE_ real(r4_kind)
680 #include <mpp_global_sum_ad.fh>
681 
682 #undef MPP_GLOBAL_SUM_AD_
683 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_r4_5d
684 #undef MPP_EXTRA_INDICES_
685 #define MPP_EXTRA_INDICES_ ,:,:,:
686 #undef MPP_TYPE_
687 #define MPP_TYPE_ real(r4_kind)
688 #include <mpp_global_sum_ad.fh>
689 
690 #ifdef OVERLOAD_C4
691 #undef MPP_GLOBAL_SUM_AD_
692 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_c4_2d
693 #undef MPP_EXTRA_INDICES_
694 #define MPP_EXTRA_INDICES_
695 #undef MPP_TYPE_
696 #define MPP_TYPE_ complex(c4_kind)
697 #include <mpp_global_sum_ad.fh>
698 
699 #undef MPP_GLOBAL_SUM_AD_
700 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_c4_3d
701 #undef MPP_EXTRA_INDICES_
702 #define MPP_EXTRA_INDICES_ ,:
703 #undef MPP_TYPE_
704 #define MPP_TYPE_ complex(c4_kind)
705 #include <mpp_global_sum_ad.fh>
706 
707 #undef MPP_GLOBAL_SUM_AD_
708 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_c4_4d
709 #undef MPP_EXTRA_INDICES_
710 #define MPP_EXTRA_INDICES_ ,:,:
711 #undef MPP_TYPE_
712 #define MPP_TYPE_ complex(c4_kind)
713 #include <mpp_global_sum_ad.fh>
714 
715 #undef MPP_GLOBAL_SUM_AD_
716 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_c4_5d
717 #undef MPP_EXTRA_INDICES_
718 #define MPP_EXTRA_INDICES_ ,:,:,:
719 #undef MPP_TYPE_
720 #define MPP_TYPE_ complex(c4_kind)
721 #include <mpp_global_sum_ad.fh>
722 #endif
723 
724 #undef MPP_GLOBAL_SUM_AD_
725 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_i8_2d
726 #undef MPP_EXTRA_INDICES_
727 #define MPP_EXTRA_INDICES_
728 #undef MPP_TYPE_
729 #define MPP_TYPE_ integer(i8_kind)
730 #include <mpp_global_sum_ad.fh>
731 
732 #undef MPP_GLOBAL_SUM_AD_
733 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_i8_3d
734 #undef MPP_EXTRA_INDICES_
735 #define MPP_EXTRA_INDICES_ ,:
736 #undef MPP_TYPE_
737 #define MPP_TYPE_ integer(i8_kind)
738 #include <mpp_global_sum_ad.fh>
739 
740 #undef MPP_GLOBAL_SUM_AD_
741 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_i8_4d
742 #undef MPP_EXTRA_INDICES_
743 #define MPP_EXTRA_INDICES_ ,:,:
744 #undef MPP_TYPE_
745 #define MPP_TYPE_ integer(i8_kind)
746 #include <mpp_global_sum_ad.fh>
747 
748 #undef MPP_GLOBAL_SUM_AD_
749 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_i8_5d
750 #undef MPP_EXTRA_INDICES_
751 #define MPP_EXTRA_INDICES_ ,:,:,:
752 #undef MPP_TYPE_
753 #define MPP_TYPE_ integer(i8_kind)
754 #include <mpp_global_sum_ad.fh>
755 
756 #undef MPP_GLOBAL_SUM_AD_
757 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_i4_2d
758 #undef MPP_EXTRA_INDICES_
759 #define MPP_EXTRA_INDICES_
760 #undef MPP_TYPE_
761 #define MPP_TYPE_ integer(i4_kind)
762 #include <mpp_global_sum_ad.fh>
763 
764 #undef MPP_GLOBAL_SUM_AD_
765 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_i4_3d
766 #undef MPP_EXTRA_INDICES_
767 #define MPP_EXTRA_INDICES_ ,:
768 #undef MPP_TYPE_
769 #define MPP_TYPE_ integer(i4_kind)
770 #include <mpp_global_sum_ad.fh>
771 
772 #undef MPP_GLOBAL_SUM_AD_
773 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_i4_4d
774 #undef MPP_EXTRA_INDICES_
775 #define MPP_EXTRA_INDICES_ ,:,:
776 #undef MPP_TYPE_
777 #define MPP_TYPE_ integer(i4_kind)
778 #include <mpp_global_sum_ad.fh>
779 
780 #undef MPP_GLOBAL_SUM_AD_
781 #define MPP_GLOBAL_SUM_AD_ mpp_global_sum_ad_i4_5d
782 #undef MPP_EXTRA_INDICES_
783 #define MPP_EXTRA_INDICES_ ,:,:,:
784 #undef MPP_TYPE_
785 #define MPP_TYPE_ integer(i4_kind)
786 #include <mpp_global_sum_ad.fh>
787 !bnc
788 
789 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
790 ! !
791 ! MPP_GLOBAL_FIELD: get global field from domain field !
792 ! !
793 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
794 
795 #define MPP_TYPE_INIT_VALUE 0.
796 #undef MPP_GLOBAL_FIELD_2D_
797 #define MPP_GLOBAL_FIELD_2D_ mpp_global_field2D_r8_2d
798 #undef MPP_GLOBAL_FIELD_3D_
799 #define MPP_GLOBAL_FIELD_3D_ mpp_global_field2D_r8_3d
800 #undef MPP_GLOBAL_FIELD_4D_
801 #define MPP_GLOBAL_FIELD_4D_ mpp_global_field2D_r8_4d
802 #undef MPP_GLOBAL_FIELD_5D_
803 #define MPP_GLOBAL_FIELD_5D_ mpp_global_field2D_r8_5d
804 #undef MPP_TYPE_
805 #define MPP_TYPE_ real(r8_kind)
806 #include <mpp_global_field.fh>
807 
808 #ifdef OVERLOAD_C8
809 #undef MPP_GLOBAL_FIELD_2D_
810 #define MPP_GLOBAL_FIELD_2D_ mpp_global_field2D_c8_2d
811 #undef MPP_GLOBAL_FIELD_3D_
812 #define MPP_GLOBAL_FIELD_3D_ mpp_global_field2D_c8_3d
813 #undef MPP_GLOBAL_FIELD_4D_
814 #define MPP_GLOBAL_FIELD_4D_ mpp_global_field2D_c8_4d
815 #undef MPP_GLOBAL_FIELD_5D_
816 #define MPP_GLOBAL_FIELD_5D_ mpp_global_field2D_c8_5d
817 #undef MPP_TYPE_
818 #define MPP_TYPE_ complex(c8_kind)
819 #include <mpp_global_field.fh>
820 #endif
821 
822 #undef MPP_TYPE_INIT_VALUE
823 #define MPP_TYPE_INIT_VALUE 0
824 #undef MPP_GLOBAL_FIELD_2D_
825 #define MPP_GLOBAL_FIELD_2D_ mpp_global_field2D_i8_2d
826 #undef MPP_GLOBAL_FIELD_3D_
827 #define MPP_GLOBAL_FIELD_3D_ mpp_global_field2D_i8_3d
828 #undef MPP_GLOBAL_FIELD_4D_
829 #define MPP_GLOBAL_FIELD_4D_ mpp_global_field2D_i8_4d
830 #undef MPP_GLOBAL_FIELD_5D_
831 #define MPP_GLOBAL_FIELD_5D_ mpp_global_field2D_i8_5d
832 #undef MPP_TYPE_
833 #define MPP_TYPE_ integer(i8_kind)
834 #include <mpp_global_field.fh>
835 
836 #undef MPP_TYPE_INIT_VALUE
837 #define MPP_TYPE_INIT_VALUE .false.
838 #undef MPP_GLOBAL_FIELD_2D_
839 #define MPP_GLOBAL_FIELD_2D_ mpp_global_field2D_l8_2d
840 #undef MPP_GLOBAL_FIELD_3D_
841 #define MPP_GLOBAL_FIELD_3D_ mpp_global_field2D_l8_3d
842 #undef MPP_GLOBAL_FIELD_4D_
843 #define MPP_GLOBAL_FIELD_4D_ mpp_global_field2D_l8_4d
844 #undef MPP_GLOBAL_FIELD_5D_
845 #define MPP_GLOBAL_FIELD_5D_ mpp_global_field2D_l8_5d
846 #undef MPP_TYPE_
847 #define MPP_TYPE_ logical(l8_kind)
848 #include <mpp_global_field.fh>
849 
850 #undef MPP_TYPE_INIT_VALUE
851 #define MPP_TYPE_INIT_VALUE 0.
852 #undef MPP_GLOBAL_FIELD_2D_
853 #define MPP_GLOBAL_FIELD_2D_ mpp_global_field2D_r4_2d
854 #undef MPP_GLOBAL_FIELD_3D_
855 #define MPP_GLOBAL_FIELD_3D_ mpp_global_field2D_r4_3d
856 #undef MPP_GLOBAL_FIELD_4D_
857 #define MPP_GLOBAL_FIELD_4D_ mpp_global_field2D_r4_4d
858 #undef MPP_GLOBAL_FIELD_5D_
859 #define MPP_GLOBAL_FIELD_5D_ mpp_global_field2D_r4_5d
860 #undef MPP_TYPE_
861 #define MPP_TYPE_ real(r4_kind)
862 #include <mpp_global_field.fh>
863 
864 #ifdef OVERLOAD_C4
865 #undef MPP_GLOBAL_FIELD_2D_
866 #define MPP_GLOBAL_FIELD_2D_ mpp_global_field2D_c4_2d
867 #undef MPP_GLOBAL_FIELD_3D_
868 #define MPP_GLOBAL_FIELD_3D_ mpp_global_field2D_c4_3d
869 #undef MPP_GLOBAL_FIELD_4D_
870 #define MPP_GLOBAL_FIELD_4D_ mpp_global_field2D_c4_4d
871 #undef MPP_GLOBAL_FIELD_5D_
872 #define MPP_GLOBAL_FIELD_5D_ mpp_global_field2D_c4_5d
873 #undef MPP_TYPE_
874 #define MPP_TYPE_ complex(c4_kind)
875 #include <mpp_global_field.fh>
876 #endif
877 
878 #undef MPP_TYPE_INIT_VALUE
879 #define MPP_TYPE_INIT_VALUE 0
880 #undef MPP_GLOBAL_FIELD_2D_
881 #define MPP_GLOBAL_FIELD_2D_ mpp_global_field2D_i4_2d
882 #undef MPP_GLOBAL_FIELD_3D_
883 #define MPP_GLOBAL_FIELD_3D_ mpp_global_field2D_i4_3d
884 #undef MPP_GLOBAL_FIELD_4D_
885 #define MPP_GLOBAL_FIELD_4D_ mpp_global_field2D_i4_4d
886 #undef MPP_GLOBAL_FIELD_5D_
887 #define MPP_GLOBAL_FIELD_5D_ mpp_global_field2D_i4_5d
888 #undef MPP_TYPE_
889 #define MPP_TYPE_ integer(i4_kind)
890 #include <mpp_global_field.fh>
891 
892 #undef MPP_TYPE_INIT_VALUE
893 #define MPP_TYPE_INIT_VALUE .false.
894 #undef MPP_GLOBAL_FIELD_2D_
895 #define MPP_GLOBAL_FIELD_2D_ mpp_global_field2D_l4_2d
896 #undef MPP_GLOBAL_FIELD_3D_
897 #define MPP_GLOBAL_FIELD_3D_ mpp_global_field2D_l4_3d
898 #undef MPP_GLOBAL_FIELD_4D_
899 #define MPP_GLOBAL_FIELD_4D_ mpp_global_field2D_l4_4d
900 #undef MPP_GLOBAL_FIELD_5D_
901 #define MPP_GLOBAL_FIELD_5D_ mpp_global_field2D_l4_5d
902 #undef MPP_TYPE_
903 #define MPP_TYPE_ logical(l4_kind)
904 #include <mpp_global_field.fh>
905 #undef MPP_TYPE_INIT_VALUE
906 
907 !****************************************************
908 #define MPP_TYPE_INIT_VALUE 0.
909 #undef MPP_GLOBAL_FIELD_2D_AD_
910 #define MPP_GLOBAL_FIELD_2D_AD_ mpp_global_field2D_r8_2d_ad
911 #undef MPP_GLOBAL_FIELD_3D_AD_
912 #define MPP_GLOBAL_FIELD_3D_AD_ mpp_global_field2D_r8_3d_ad
913 #undef MPP_GLOBAL_FIELD_4D_AD_
914 #define MPP_GLOBAL_FIELD_4D_AD_ mpp_global_field2D_r8_4d_ad
915 #undef MPP_GLOBAL_FIELD_5D_AD_
916 #define MPP_GLOBAL_FIELD_5D_AD_ mpp_global_field2D_r8_5d_ad
917 #undef MPP_TYPE_
918 #define MPP_TYPE_ real(r8_kind)
919 #include <mpp_global_field_ad.fh>
920 
921 #ifdef OVERLOAD_C8
922 #undef MPP_GLOBAL_FIELD_2D_AD_
923 #define MPP_GLOBAL_FIELD_2D_AD_ mpp_global_field2D_c8_2d_ad
924 #undef MPP_GLOBAL_FIELD_3D_AD_
925 #define MPP_GLOBAL_FIELD_3D_AD_ mpp_global_field2D_c8_3d_ad
926 #undef MPP_GLOBAL_FIELD_4D_AD_
927 #define MPP_GLOBAL_FIELD_4D_AD_ mpp_global_field2D_c8_4d_ad
928 #undef MPP_GLOBAL_FIELD_5D_AD_
929 #define MPP_GLOBAL_FIELD_5D_AD_ mpp_global_field2D_c8_5d_ad
930 #undef MPP_TYPE_
931 #define MPP_TYPE_ complex(c8_kind)
932 #include <mpp_global_field_ad.fh>
933 #endif
934 
935 #undef MPP_TYPE_INIT_VALUE
936 #define MPP_TYPE_INIT_VALUE 0
937 #undef MPP_GLOBAL_FIELD_2D_AD_
938 #define MPP_GLOBAL_FIELD_2D_AD_ mpp_global_field2D_i8_2d_ad
939 #undef MPP_GLOBAL_FIELD_3D_AD_
940 #define MPP_GLOBAL_FIELD_3D_AD_ mpp_global_field2D_i8_3d_ad
941 #undef MPP_GLOBAL_FIELD_4D_AD_
942 #define MPP_GLOBAL_FIELD_4D_AD_ mpp_global_field2D_i8_4d_ad
943 #undef MPP_GLOBAL_FIELD_5D_AD_
944 #define MPP_GLOBAL_FIELD_5D_AD_ mpp_global_field2D_i8_5d_ad
945 #undef MPP_TYPE_
946 #define MPP_TYPE_ integer(i8_kind)
947 #include <mpp_global_field_ad.fh>
948 
949 #undef MPP_TYPE_INIT_VALUE
950 #define MPP_TYPE_INIT_VALUE .false.
951 #undef MPP_GLOBAL_FIELD_2D_AD_
952 #define MPP_GLOBAL_FIELD_2D_AD_ mpp_global_field2D_l8_2d_ad
953 #undef MPP_GLOBAL_FIELD_3D_AD_
954 #define MPP_GLOBAL_FIELD_3D_AD_ mpp_global_field2D_l8_3d_ad
955 #undef MPP_GLOBAL_FIELD_4D_AD_
956 #define MPP_GLOBAL_FIELD_4D_AD_ mpp_global_field2D_l8_4d_ad
957 #undef MPP_GLOBAL_FIELD_5D_AD_
958 #define MPP_GLOBAL_FIELD_5D_AD_ mpp_global_field2D_l8_5d_ad
959 #undef MPP_TYPE_
960 #define MPP_TYPE_ logical(l8_kind)
961 #include <mpp_global_field_ad.fh>
962 
963 #undef MPP_TYPE_INIT_VALUE
964 #define MPP_TYPE_INIT_VALUE 0.
965 #undef MPP_GLOBAL_FIELD_2D_AD_
966 #define MPP_GLOBAL_FIELD_2D_AD_ mpp_global_field2D_r4_2d_ad
967 #undef MPP_GLOBAL_FIELD_3D_AD_
968 #define MPP_GLOBAL_FIELD_3D_AD_ mpp_global_field2D_r4_3d_ad
969 #undef MPP_GLOBAL_FIELD_4D_AD_
970 #define MPP_GLOBAL_FIELD_4D_AD_ mpp_global_field2D_r4_4d_ad
971 #undef MPP_GLOBAL_FIELD_5D_AD_
972 #define MPP_GLOBAL_FIELD_5D_AD_ mpp_global_field2D_r4_5d_ad
973 #undef MPP_TYPE_
974 #define MPP_TYPE_ real(r4_kind)
975 #include <mpp_global_field_ad.fh>
976 
977 #ifdef OVERLOAD_C4
978 #undef MPP_GLOBAL_FIELD_2D_AD_
979 #define MPP_GLOBAL_FIELD_2D_AD_ mpp_global_field2D_c4_2d_ad
980 #undef MPP_GLOBAL_FIELD_3D_AD_
981 #define MPP_GLOBAL_FIELD_3D_AD_ mpp_global_field2D_c4_3d_ad
982 #undef MPP_GLOBAL_FIELD_4D_AD_
983 #define MPP_GLOBAL_FIELD_4D_AD_ mpp_global_field2D_c4_4d_ad
984 #undef MPP_GLOBAL_FIELD_5D_AD_
985 #define MPP_GLOBAL_FIELD_5D_AD_ mpp_global_field2D_c4_5d_ad
986 #undef MPP_TYPE_
987 #define MPP_TYPE_ complex(c4_kind)
988 #include <mpp_global_field_ad.fh>
989 #endif
990 
991 #undef MPP_TYPE_INIT_VALUE
992 #define MPP_TYPE_INIT_VALUE 0
993 #undef MPP_GLOBAL_FIELD_2D_AD_
994 #define MPP_GLOBAL_FIELD_2D_AD_ mpp_global_field2D_i4_2d_ad
995 #undef MPP_GLOBAL_FIELD_3D_AD_
996 #define MPP_GLOBAL_FIELD_3D_AD_ mpp_global_field2D_i4_3d_ad
997 #undef MPP_GLOBAL_FIELD_4D_AD_
998 #define MPP_GLOBAL_FIELD_4D_AD_ mpp_global_field2D_i4_4d_ad
999 #undef MPP_GLOBAL_FIELD_5D_AD_
1000 #define MPP_GLOBAL_FIELD_5D_AD_ mpp_global_field2D_i4_5d_ad
1001 #undef MPP_TYPE_
1002 #define MPP_TYPE_ integer(i4_kind)
1003 #include <mpp_global_field_ad.fh>
1004 
1005 #undef MPP_TYPE_INIT_VALUE
1006 #define MPP_TYPE_INIT_VALUE .false.
1007 #undef MPP_GLOBAL_FIELD_2D_AD_
1008 #define MPP_GLOBAL_FIELD_2D_AD_ mpp_global_field2D_l4_2d_ad
1009 #undef MPP_GLOBAL_FIELD_3D_AD_
1010 #define MPP_GLOBAL_FIELD_3D_AD_ mpp_global_field2D_l4_3d_ad
1011 #undef MPP_GLOBAL_FIELD_4D_AD_
1012 #define MPP_GLOBAL_FIELD_4D_AD_ mpp_global_field2D_l4_4d_ad
1013 #undef MPP_GLOBAL_FIELD_5D_AD_
1014 #define MPP_GLOBAL_FIELD_5D_AD_ mpp_global_field2D_l4_5d_ad
1015 #undef MPP_TYPE_
1016 #define MPP_TYPE_ logical(l4_kind)
1017 #include <mpp_global_field_ad.fh>
1018 #undef MPP_TYPE_INIT_VALUE
1019 
1020 !****************************************************
1021 #undef MPP_DO_GLOBAL_FIELD_3D_
1022 #undef MPP_DO_GLOBAL_FIELD_A2A_3D_
1023 #define MPP_DO_GLOBAL_FIELD_3D_ mpp_do_global_field2D_r8_3d
1024 #define MPP_DO_GLOBAL_FIELD_A2A_3D_ mpp_do_global_field2D_a2a_r8_3d
1025 #undef MPP_TYPE_
1026 #define MPP_TYPE_ real(r8_kind)
1027 #include <mpp_do_global_field.fh>
1028 
1029 #ifdef OVERLOAD_C8
1030 #undef MPP_DO_GLOBAL_FIELD_3D_
1031 #undef MPP_DO_GLOBAL_FIELD_A2A_3D_
1032 #define MPP_DO_GLOBAL_FIELD_3D_ mpp_do_global_field2D_c8_3d
1033 #define MPP_DO_GLOBAL_FIELD_A2A_3D_ mpp_do_global_field2D_a2a_c8_3d
1034 #undef MPP_TYPE_
1035 #define MPP_TYPE_ complex(c8_kind)
1036 #include <mpp_do_global_field.fh>
1037 #endif
1038 
1039 #undef MPP_DO_GLOBAL_FIELD_3D_
1040 #undef MPP_DO_GLOBAL_FIELD_A2A_3D_
1041 #define MPP_DO_GLOBAL_FIELD_3D_ mpp_do_global_field2D_i8_3d
1042 #define MPP_DO_GLOBAL_FIELD_A2A_3D_ mpp_do_global_field2D_a2a_i8_3d
1043 #undef MPP_TYPE_
1044 #define MPP_TYPE_ integer(i8_kind)
1045 #include <mpp_do_global_field.fh>
1046 
1047 #undef MPP_DO_GLOBAL_FIELD_3D_
1048 #undef MPP_DO_GLOBAL_FIELD_A2A_3D_
1049 #define MPP_DO_GLOBAL_FIELD_3D_ mpp_do_global_field2D_l8_3d
1050 #define MPP_DO_GLOBAL_FIELD_A2A_3D_ mpp_do_global_field2D_a2a_l8_3d
1051 #define LOGICAL_VARIABLE
1052 #undef MPP_TYPE_
1053 #define MPP_TYPE_ logical(l8_kind)
1054 #include <mpp_do_global_field.fh>
1055 #undef LOGICAL_VARIABLE
1056 
1057 #undef MPP_DO_GLOBAL_FIELD_3D_
1058 #undef MPP_DO_GLOBAL_FIELD_A2A_3D_
1059 #define MPP_DO_GLOBAL_FIELD_3D_ mpp_do_global_field2D_r4_3d
1060 #define MPP_DO_GLOBAL_FIELD_A2A_3D_ mpp_do_global_field2D_a2a_r4_3d
1061 #undef MPP_TYPE_
1062 #define MPP_TYPE_ real(r4_kind)
1063 #include <mpp_do_global_field.fh>
1064 
1065 #ifdef OVERLOAD_C4
1066 #undef MPP_DO_GLOBAL_FIELD_3D_
1067 #undef MPP_DO_GLOBAL_FIELD_A2A_3D_
1068 #define MPP_DO_GLOBAL_FIELD_3D_ mpp_do_global_field2D_c4_3d
1069 #define MPP_DO_GLOBAL_FIELD_A2A_3D_ mpp_do_global_field2D_a2a_c4_3d
1070 #undef MPP_TYPE_
1071 #define MPP_TYPE_ complex(c4_kind)
1072 #include <mpp_do_global_field.fh>
1073 #endif
1074 
1075 #undef MPP_DO_GLOBAL_FIELD_3D_
1076 #undef MPP_DO_GLOBAL_FIELD_A2A_3D_
1077 #define MPP_DO_GLOBAL_FIELD_3D_ mpp_do_global_field2D_i4_3d
1078 #define MPP_DO_GLOBAL_FIELD_A2A_3D_ mpp_do_global_field2D_a2a_i4_3d
1079 #undef MPP_TYPE_
1080 #define MPP_TYPE_ integer(i4_kind)
1081 #include <mpp_do_global_field.fh>
1082 
1083 #undef MPP_DO_GLOBAL_FIELD_3D_
1084 #undef MPP_DO_GLOBAL_FIELD_A2A_3D_
1085 #define MPP_DO_GLOBAL_FIELD_3D_ mpp_do_global_field2D_l4_3d
1086 #define MPP_DO_GLOBAL_FIELD_A2A_3D_ mpp_do_global_field2D_a2a_l4_3d
1087 #define LOGICAL_VARIABLE
1088 #undef MPP_TYPE_
1089 #define MPP_TYPE_ logical(l4_kind)
1090 #include <mpp_do_global_field.fh>
1091 #undef LOGICAL_VARIABLE
1092 !****************************************************
1093 #undef MPP_DO_GLOBAL_FIELD_3D_AD_
1094 #define MPP_DO_GLOBAL_FIELD_3D_AD_ mpp_do_global_field2D_r8_3d_ad
1095 #undef MPP_TYPE_
1096 #define MPP_TYPE_ real(r8_kind)
1097 #include <mpp_do_global_field_ad.fh>
1098 
1099 #ifdef OVERLOAD_C8
1100 #undef MPP_DO_GLOBAL_FIELD_3D_AD_
1101 #define MPP_DO_GLOBAL_FIELD_3D_AD_ mpp_do_global_field2D_c8_3d_ad
1102 #undef MPP_TYPE_
1103 #define MPP_TYPE_ complex(c8_kind)
1104 #include <mpp_do_global_field_ad.fh>
1105 #endif
1106 
1107 #undef MPP_DO_GLOBAL_FIELD_3D_AD_
1108 #define MPP_DO_GLOBAL_FIELD_3D_AD_ mpp_do_global_field2D_i8_3d_ad
1109 #undef MPP_TYPE_
1110 #define MPP_TYPE_ integer(i8_kind)
1111 #include <mpp_do_global_field_ad.fh>
1112 
1113 #undef MPP_DO_GLOBAL_FIELD_3D_AD_
1114 #define MPP_DO_GLOBAL_FIELD_3D_AD_ mpp_do_global_field2D_l8_3d_ad
1115 #define LOGICAL_VARIABLE
1116 #undef MPP_TYPE_
1117 #define MPP_TYPE_ logical(l8_kind)
1118 #include <mpp_do_global_field_ad.fh>
1119 #undef LOGICAL_VARIABLE
1120 
1121 #undef MPP_DO_GLOBAL_FIELD_3D_AD_
1122 #define MPP_DO_GLOBAL_FIELD_3D_AD_ mpp_do_global_field2D_r4_3d_ad
1123 #undef MPP_TYPE_
1124 #define MPP_TYPE_ real(r4_kind)
1125 #include <mpp_do_global_field_ad.fh>
1126 
1127 #ifdef OVERLOAD_C4
1128 #undef MPP_DO_GLOBAL_FIELD_3D_AD_
1129 #define MPP_DO_GLOBAL_FIELD_3D_AD_ mpp_do_global_field2D_c4_3d_ad
1130 #undef MPP_TYPE_
1131 #define MPP_TYPE_ complex(c4_kind)
1132 #include <mpp_do_global_field_ad.fh>
1133 #endif
1134 
1135 #undef MPP_DO_GLOBAL_FIELD_3D_AD_
1136 #define MPP_DO_GLOBAL_FIELD_3D_AD_ mpp_do_global_field2D_i4_3d_ad
1137 #undef MPP_TYPE_
1138 #define MPP_TYPE_ integer(i4_kind)
1139 #include <mpp_do_global_field_ad.fh>
1140 
1141 #undef MPP_DO_GLOBAL_FIELD_3D_AD_
1142 #define MPP_DO_GLOBAL_FIELD_3D_AD_ mpp_do_global_field2D_l4_3d_ad
1143 #define LOGICAL_VARIABLE
1144 #undef MPP_TYPE_
1145 #define MPP_TYPE_ logical(l4_kind)
1146 #include <mpp_do_global_field_ad.fh>
1147 #undef LOGICAL_VARIABLE
1148 !> @}