1 |
! Special meanings/handles |
2 |
integer MITCPLR_COUPLER |
3 |
parameter(MITCPLR_COUPLER=59) |
4 |
|
5 |
logical DEBUG |
6 |
parameter (DEBUG=.TRUE.) |
7 |
logical VERB |
8 |
c parameter (VERB=.TRUE.) |
9 |
parameter (VERB=.FALSE.) |
10 |
|
11 |
! Parameters for fixed length declarations |
12 |
integer MAX_PROCS |
13 |
parameter(MAX_PROCS=128) |
14 |
|
15 |
integer MAX_IBUF |
16 |
parameter(MAX_IBUF=1024) |
17 |
|
18 |
integer MAXLEN_COMP_NAME |
19 |
parameter( MAXLEN_COMP_NAME=32 ) |
20 |
|
21 |
integer MAX_COMPONENTS |
22 |
parameter( MAX_COMPONENTS=10 ) |
23 |
|
24 |
integer MAX_TILES |
25 |
parameter( MAX_TILES=16 ) |
26 |
|
27 |
integer HEADER_SIZE |
28 |
parameter( HEADER_SIZE=8+MAXLEN_COMP_NAME ) |
29 |
|
30 |
integer MAX_R4_BUFLEN |
31 |
parameter( MAX_R4_BUFLEN=HEADER_SIZE+256*256 ) |
32 |
|
33 |
integer MAX_R8_BUFLEN |
34 |
parameter( MAX_R8_BUFLEN=HEADER_SIZE+256*256 ) |
35 |
|
36 |
integer LogUnit |
37 |
parameter( LogUnit=99 ) |
38 |
|
39 |
! Temporary arrays for local use |
40 |
c integer rank(MAX_PROCS) |
41 |
integer ibuf(MAX_IBUF) |
42 |
|
43 |
! The list of components |
44 |
integer num_components |
45 |
character*(MAXLEN_COMP_NAME) component_List(MAX_COMPONENTS) |
46 |
common /CPLR_COMP_LIST/ |
47 |
& num_components, |
48 |
& component_List |
49 |
|
50 |
! Coupler has duplicate copy of details |
51 |
integer num_coupler_procs |
52 |
integer rank_coupler_procs(MAX_PROCS) |
53 |
character*(MAXLEN_COMP_NAME) coupler_Name |
54 |
common /CPLR_COUPLER/ |
55 |
& num_coupler_procs, |
56 |
& rank_coupler_procs, |
57 |
& coupler_Name |
58 |
|
59 |
! Buffers |
60 |
real*4 r4buf(MAX_R4_BUFLEN) |
61 |
real*8 r8buf(MAX_R8_BUFLEN) |
62 |
common /CPLR_BUFFERS/ |
63 |
& r4buf,r8buf |
64 |
|
65 |
! Information for communicating with my two communicators |
66 |
integer my_component_ind |
67 |
integer my_rank_in_world |
68 |
integer MPI_COMM_mylocal |
69 |
integer num_procs_in_local |
70 |
integer my_rank_in_local |
71 |
integer MPI_COMM_myglobal |
72 |
integer num_procs_in_global |
73 |
integer my_rank_in_global |
74 |
integer my_coupler_rank |
75 |
integer my_num_tiles |
76 |
integer my_tile_nx(MAX_TILES) |
77 |
integer my_tile_ny(MAX_TILES) |
78 |
integer my_tile_i0(MAX_TILES) |
79 |
integer my_tile_j0(MAX_TILES) |
80 |
integer my_tile_bi(MAX_TILES) |
81 |
integer my_tile_bj(MAX_TILES) |
82 |
character*(MAXLEN_COMP_NAME) my_component_name |
83 |
common /CPLR_IDENT/ |
84 |
& my_component_ind, |
85 |
& my_rank_in_world, |
86 |
& MPI_COMM_mylocal, |
87 |
& num_procs_in_local, |
88 |
& my_rank_in_local, |
89 |
& MPI_COMM_myglobal, |
90 |
& num_procs_in_global, |
91 |
a my_rank_in_global, |
92 |
& my_coupler_rank, |
93 |
& my_num_tiles, |
94 |
& my_tile_nx, |
95 |
& my_tile_ny, |
96 |
& my_tile_i0, |
97 |
& my_tile_j0, |
98 |
& my_tile_bi, |
99 |
& my_tile_bj, |
100 |
& my_component_name |
101 |
|
102 |
! The components details |
103 |
integer num_component_procs(MAX_COMPONENTS) |
104 |
integer rank_component_procs(MAX_PROCS,MAX_COMPONENTS) |
105 |
integer num_compcplr_procs(MAX_COMPONENTS) |
106 |
integer rank_compcplr_procs(MAX_PROCS,MAX_COMPONENTS) |
107 |
integer MPI_COMM_component(MAX_COMPONENTS) |
108 |
integer MPI_COMM_compcplr(MAX_COMPONENTS) |
109 |
integer component_num_tiles(MAX_PROCS,MAX_COMPONENTS) |
110 |
integer component_tile_nx(MAX_TILES,MAX_PROCS,MAX_COMPONENTS) |
111 |
integer component_tile_ny(MAX_TILES,MAX_PROCS,MAX_COMPONENTS) |
112 |
integer component_tile_i0(MAX_TILES,MAX_PROCS,MAX_COMPONENTS) |
113 |
integer component_tile_j0(MAX_TILES,MAX_PROCS,MAX_COMPONENTS) |
114 |
character*(MAXLEN_COMP_NAME) component_Name(MAX_COMPONENTS) |
115 |
common /CPLR_COMPONENTS/ |
116 |
& num_component_procs, |
117 |
& rank_component_procs, |
118 |
& num_compcplr_procs, |
119 |
& rank_compcplr_procs, |
120 |
& MPI_COMM_component, |
121 |
& MPI_COMM_compcplr, |
122 |
& component_num_tiles, |
123 |
& component_tile_nx, |
124 |
& component_tile_ny, |
125 |
& component_tile_i0, |
126 |
& component_tile_j0, |
127 |
& component_Name |