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