1 | # define PASTE(a) a |
---|
2 | # define ADD_TRAIL_USCORE(a) PASTE(a)_ |
---|
3 | # define CONCATENATE(a,b) ADD_TRAIL_USCORE(a)b |
---|
4 | |
---|
5 | # define GLOBSUM_CODE |
---|
6 | |
---|
7 | # define DIM_1d |
---|
8 | # define FUNCTION_GLOBSUM CONCATENATE(glob_sum_1d,PRECISION) |
---|
9 | # include "lib_fortran_generic.h90" |
---|
10 | # undef FUNCTION_GLOBSUM |
---|
11 | # undef DIM_1d |
---|
12 | |
---|
13 | # define DIM_2d |
---|
14 | # define OPERATION_GLOBSUM |
---|
15 | # define FUNCTION_GLOBSUM CONCATENATE(glob_sum_2d,PRECISION) |
---|
16 | # include "lib_fortran_generic.h90" |
---|
17 | # undef FUNCTION_GLOBSUM |
---|
18 | # undef OPERATION_GLOBSUM |
---|
19 | # define OPERATION_FULL_GLOBSUM |
---|
20 | # define FUNCTION_GLOBSUM CONCATENATE(glob_sum_full_2d,PRECISION) |
---|
21 | # include "lib_fortran_generic.h90" |
---|
22 | # undef FUNCTION_GLOBSUM |
---|
23 | # undef OPERATION_FULL_GLOBSUM |
---|
24 | # undef DIM_2d |
---|
25 | |
---|
26 | # define DIM_3d |
---|
27 | # define OPERATION_GLOBSUM |
---|
28 | # define FUNCTION_GLOBSUM CONCATENATE(glob_sum_3d,PRECISION) |
---|
29 | # include "lib_fortran_generic.h90" |
---|
30 | # undef FUNCTION_GLOBSUM |
---|
31 | # undef OPERATION_GLOBSUM |
---|
32 | # define OPERATION_FULL_GLOBSUM |
---|
33 | # define FUNCTION_GLOBSUM CONCATENATE(glob_sum_full_3d,PRECISION) |
---|
34 | # include "lib_fortran_generic.h90" |
---|
35 | # undef FUNCTION_GLOBSUM |
---|
36 | # undef OPERATION_FULL_GLOBSUM |
---|
37 | # undef DIM_3d |
---|
38 | |
---|
39 | # undef GLOBSUM_CODE |
---|
40 | |
---|
41 | # define GLOBMINMAX_CODE |
---|
42 | |
---|
43 | # define DIM_2d |
---|
44 | # define OPERATION_GLOBMIN |
---|
45 | # define FUNCTION_GLOBMINMAX CONCATENATE(glob_min_2d,PRECISION) |
---|
46 | # include "lib_fortran_generic.h90" |
---|
47 | # undef FUNCTION_GLOBMINMAX |
---|
48 | # undef OPERATION_GLOBMIN |
---|
49 | # define OPERATION_GLOBMAX |
---|
50 | # define FUNCTION_GLOBMINMAX CONCATENATE(glob_max_2d,PRECISION) |
---|
51 | # include "lib_fortran_generic.h90" |
---|
52 | # undef FUNCTION_GLOBMINMAX |
---|
53 | # undef OPERATION_GLOBMAX |
---|
54 | # undef DIM_2d |
---|
55 | |
---|
56 | # define DIM_3d |
---|
57 | # define OPERATION_GLOBMIN |
---|
58 | # define FUNCTION_GLOBMINMAX CONCATENATE(glob_min_3d,PRECISION) |
---|
59 | # include "lib_fortran_generic.h90" |
---|
60 | # undef FUNCTION_GLOBMINMAX |
---|
61 | # undef OPERATION_GLOBMIN |
---|
62 | # define OPERATION_GLOBMAX |
---|
63 | # define FUNCTION_GLOBMINMAX CONCATENATE(glob_max_3d,PRECISION) |
---|
64 | # include "lib_fortran_generic.h90" |
---|
65 | # undef FUNCTION_GLOBMINMAX |
---|
66 | # undef OPERATION_GLOBMAX |
---|
67 | # undef DIM_3d |
---|
68 | # undef GLOBMINMAX_CODE |
---|