summaryrefslogtreecommitdiff
path: root/sci-biology/tree-puzzle/files/tree-puzzle-5.2-MPI-3.0.patch
blob: 66e3e648233832082b16e7c6bf2d735429e4ef4c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
https://bugs.gentoo.org/690900
rename MPI 1.0 to 3.0+ functions:
- MPI_Address -> MPI_Get_address
- MPI_Type_struct -> MPI_Type_create_struct

--- a/src/ppuzzle.c
+++ b/src/ppuzzle.c
@@ -297,13 +297,13 @@
 	else	MPI_Recv(&dummy, 0, MPI_INT, PP_MyMaster, PP_UPDATEEEI, PP_Comm, &stat);
 
 	Dtypes[0] = MPI_DOUBLE; Dtypelens[0] = tpmradix;
-	MPI_Address(&(Eval[0]), &(Dtypeaddr[0]));
+	MPI_Get_address(&(Eval[0]), &(Dtypeaddr[0]));
 	Dtypes[1] = MPI_DOUBLE; Dtypelens[1] = tpmradix * tpmradix;
-	MPI_Address(&(Evec[0][0]), &(Dtypeaddr[1]));
+	MPI_Get_address(&(Evec[0][0]), &(Dtypeaddr[1]));
 	Dtypes[2] = MPI_DOUBLE; Dtypelens[2] = tpmradix * tpmradix;
-	MPI_Address(&(Ievc[0][0]), &(Dtypeaddr[2]));
+	MPI_Get_address(&(Ievc[0][0]), &(Dtypeaddr[2]));
 
-	MPI_Type_struct(3, Dtypelens, Dtypeaddr, Dtypes, &PP_Data);
+	MPI_Type_create_struct(3, Dtypelens, Dtypeaddr, Dtypes, &PP_Data);
 	MPI_Type_commit(&PP_Data);
 
 	MPI_Bcast (MPI_BOTTOM, 1, PP_Data, PP_MyMaster, PP_Comm);
@@ -341,19 +341,19 @@
 	double*      DMVector = new_dvector(jobs);
 
 	Dtypes[0] = MPI_DOUBLE; Dtypelens[0] = jobs;
-	MPI_Address(&(DMVector[0]), &(Dtypeaddr[0]));
+	MPI_Get_address(&(DMVector[0]), &(Dtypeaddr[0]));
 	Dtypes[1] = MPI_DOUBLE; Dtypelens[1] = numcats;
-	MPI_Address(&(Rates[0]), &(Dtypeaddr[1]));
+	MPI_Get_address(&(Rates[0]), &(Dtypeaddr[1]));
 	Dtypes[2] = MPI_DOUBLE; Dtypelens[2] = 1;
-	MPI_Address(&(fracinv), &(Dtypeaddr[2]));
+	MPI_Get_address(&(fracinv), &(Dtypeaddr[2]));
 	Dtypes[3] = MPI_DOUBLE; Dtypelens[3] = tpmradix;
-	MPI_Address(&(Eval[0]), &(Dtypeaddr[3]));
+	MPI_Get_address(&(Eval[0]), &(Dtypeaddr[3]));
 	Dtypes[4] = MPI_DOUBLE; Dtypelens[4] = tpmradix * tpmradix;
-	MPI_Address(&(Evec[0][0]), &(Dtypeaddr[4]));
+	MPI_Get_address(&(Evec[0][0]), &(Dtypeaddr[4]));
 	Dtypes[5] = MPI_DOUBLE; Dtypelens[5] = tpmradix * tpmradix;
-	MPI_Address(&(Ievc[0][0]), &(Dtypeaddr[5]));
+	MPI_Get_address(&(Ievc[0][0]), &(Dtypeaddr[5]));
 
-	MPI_Type_struct(6, Dtypelens, Dtypeaddr, Dtypes, &PP_Data);
+	MPI_Type_create_struct(6, Dtypelens, Dtypeaddr, Dtypes, &PP_Data);
 	MPI_Type_commit(&PP_Data);
 
 	if (PP_IamMaster) {
@@ -719,10 +719,10 @@
 #endif
   doubles[0] = frconst;
 
-  MPI_Address(ints,     Dtypeaddr);
-  MPI_Address(doubles, (Dtypeaddr+1));
+  MPI_Get_address(ints,     Dtypeaddr);
+  MPI_Get_address(doubles, (Dtypeaddr+1));
   
-  MPI_Type_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_Sizes);
+  MPI_Type_create_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_Sizes);
   MPI_Type_commit(&PP_Sizes);
 
   for (dest=1; dest<PP_NumProcs; dest++) {
@@ -797,10 +797,10 @@
     fprintf(STDOUT, "(%2d) Receiving Sizes ...\n", PP_Myid);
 # endif /* PVERBOSE3 */
 
-  MPI_Address(ints,     Dtypeaddr);
-  MPI_Address(doubles, (Dtypeaddr+1));
+  MPI_Get_address(ints,     Dtypeaddr);
+  MPI_Get_address(doubles, (Dtypeaddr+1));
 
-  MPI_Type_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_Sizes);
+  MPI_Type_create_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_Sizes);
   MPI_Type_commit(&PP_Sizes);
  
   error = MPI_Probe(PP_MyMaster, MPI_ANY_TAG, PP_Comm, &stat);
@@ -889,31 +889,31 @@
 # endif /* PVERBOSE2 */
 
   Dtypes  [0] = MPI_CHAR; Dtypelens [0] = Maxspc * Numptrn;
-  MPI_Address(&(Seqpat[0][0]), &(Dtypeaddr[0]));
+  MPI_Get_address(&(Seqpat[0][0]), &(Dtypeaddr[0]));
   Dtypes  [1] = MPI_INT; Dtypelens  [1] = Maxsite ;
-  MPI_Address(&(Alias[0]), &(Dtypeaddr[1]));
+  MPI_Get_address(&(Alias[0]), &(Dtypeaddr[1]));
   Dtypes  [2] = MPI_INT; Dtypelens  [2] = Numptrn ;
-  MPI_Address(&(Weight[0]), &(Dtypeaddr[2]));
+  MPI_Get_address(&(Weight[0]), &(Dtypeaddr[2]));
   Dtypes  [3] = MPI_INT; Dtypelens  [3] = Numptrn ;
-  MPI_Address(&(constpat[0]), &(Dtypeaddr[3]));
+  MPI_Get_address(&(constpat[0]), &(Dtypeaddr[3]));
   Dtypes  [4] = MPI_DOUBLE; Dtypelens  [4] = numcats ;
-  MPI_Address(&(Rates[0]), &(Dtypeaddr[4]));
+  MPI_Get_address(&(Rates[0]), &(Dtypeaddr[4]));
   Dtypes  [5] = MPI_DOUBLE; Dtypelens  [5] = tpmradix ;
-  MPI_Address(&(Eval[0]), &(Dtypeaddr[5]));
+  MPI_Get_address(&(Eval[0]), &(Dtypeaddr[5]));
   Dtypes  [6] = MPI_DOUBLE; Dtypelens  [6] = tpmradix ;
-  MPI_Address(&(Freqtpm[0]), &(Dtypeaddr[6]));
+  MPI_Get_address(&(Freqtpm[0]), &(Dtypeaddr[6]));
   Dtypes  [7] = MPI_DOUBLE; Dtypelens  [7] = tpmradix * tpmradix ;
-  MPI_Address(&(Evec[0][0]), &(Dtypeaddr[7]));
+  MPI_Get_address(&(Evec[0][0]), &(Dtypeaddr[7]));
   Dtypes  [8] = MPI_DOUBLE; Dtypelens  [8] = tpmradix * tpmradix ;
-  MPI_Address(&(Ievc[0][0]), &(Dtypeaddr[8]));
+  MPI_Get_address(&(Ievc[0][0]), &(Dtypeaddr[8]));
   Dtypes  [9] = MPI_DOUBLE; Dtypelens [9] = tpmradix * tpmradix ;
-  MPI_Address(&(iexp[0][0]), &(Dtypeaddr[9]));
+  MPI_Get_address(&(iexp[0][0]), &(Dtypeaddr[9]));
   Dtypes [10] = MPI_DOUBLE; Dtypelens [10] = Maxspc * Maxspc ;
-  MPI_Address(&(Distanmat[0][0]), &(Dtypeaddr[10]));
+  MPI_Get_address(&(Distanmat[0][0]), &(Dtypeaddr[10]));
   Dtypes [11] = MPI_DOUBLE; Dtypelens [11] = numcats * tpmradix * tpmradix ;
-  MPI_Address(&(ltprobr[0][0][0]), &(Dtypeaddr[11]));
+  MPI_Get_address(&(ltprobr[0][0][0]), &(Dtypeaddr[11]));
  
-  MPI_Type_struct(12, Dtypelens, Dtypeaddr, Dtypes, &PP_Data);
+  MPI_Type_create_struct(12, Dtypelens, Dtypeaddr, Dtypes, &PP_Data);
   MPI_Type_commit(&PP_Data);
  
 
@@ -984,31 +984,31 @@
 # endif /* PVERBOSE2 */
  
   Dtypes  [0] = MPI_CHAR; Dtypelens [0] = Maxspc * Numptrn;
-  MPI_Address(&(Seqpat[0][0]), &(Dtypeaddr[0]));
+  MPI_Get_address(&(Seqpat[0][0]), &(Dtypeaddr[0]));
   Dtypes  [1] = MPI_INT; Dtypelens  [1] = Maxsite ;
-  MPI_Address(&(Alias[0]), &(Dtypeaddr[1]));
+  MPI_Get_address(&(Alias[0]), &(Dtypeaddr[1]));
   Dtypes  [2] = MPI_INT; Dtypelens  [2] = Numptrn ;
-  MPI_Address(&(Weight[0]), &(Dtypeaddr[2]));
+  MPI_Get_address(&(Weight[0]), &(Dtypeaddr[2]));
   Dtypes  [3] = MPI_INT; Dtypelens  [3] = Numptrn ;
-  MPI_Address(&(constpat[0]), &(Dtypeaddr[3]));
+  MPI_Get_address(&(constpat[0]), &(Dtypeaddr[3]));
   Dtypes  [4] = MPI_DOUBLE; Dtypelens  [4] = numcats ;
-  MPI_Address(&(Rates[0]), &(Dtypeaddr[4]));
+  MPI_Get_address(&(Rates[0]), &(Dtypeaddr[4]));
   Dtypes  [5] = MPI_DOUBLE; Dtypelens  [5] = tpmradix ;
-  MPI_Address(&(Eval[0]), &(Dtypeaddr[5]));
+  MPI_Get_address(&(Eval[0]), &(Dtypeaddr[5]));
   Dtypes  [6] = MPI_DOUBLE; Dtypelens  [6] = tpmradix ;
-  MPI_Address(&(Freqtpm[0]), &(Dtypeaddr[6]));
+  MPI_Get_address(&(Freqtpm[0]), &(Dtypeaddr[6]));
   Dtypes  [7] = MPI_DOUBLE; Dtypelens  [7] = tpmradix * tpmradix ;
-  MPI_Address(&(Evec[0][0]), &(Dtypeaddr[7]));
+  MPI_Get_address(&(Evec[0][0]), &(Dtypeaddr[7]));
   Dtypes  [8] = MPI_DOUBLE; Dtypelens  [8] = tpmradix * tpmradix ;
-  MPI_Address(&(Ievc[0][0]), &(Dtypeaddr[8]));
+  MPI_Get_address(&(Ievc[0][0]), &(Dtypeaddr[8]));
   Dtypes  [9] = MPI_DOUBLE; Dtypelens  [9] = tpmradix * tpmradix ;
-  MPI_Address(&(iexp[0][0]), &(Dtypeaddr [9]));
+  MPI_Get_address(&(iexp[0][0]), &(Dtypeaddr [9]));
   Dtypes [10] = MPI_DOUBLE; Dtypelens [10] = Maxspc * Maxspc ;
-  MPI_Address(&(Distanmat[0][0]), &(Dtypeaddr[10]));
+  MPI_Get_address(&(Distanmat[0][0]), &(Dtypeaddr[10]));
   Dtypes [11] = MPI_DOUBLE; Dtypelens [11] = numcats * tpmradix * tpmradix ;
-  MPI_Address(&(ltprobr[0][0][0]), &(Dtypeaddr[11]));
+  MPI_Get_address(&(ltprobr[0][0][0]), &(Dtypeaddr[11]));
  
-  MPI_Type_struct(12, Dtypelens, Dtypeaddr, Dtypes, &PP_Data);
+  MPI_Type_create_struct(12, Dtypelens, Dtypeaddr, Dtypes, &PP_Data);
   MPI_Type_commit(&PP_Data);
  
   for (dest=1; dest<PP_NumProcs; dest++) {
@@ -1150,10 +1150,10 @@
   ints[4] = usebestq;
   ints[5] = approx;
  
-  MPI_Address(ints,     Dtypeaddr);
-  MPI_Address(doubles, (Dtypeaddr+1));
+  MPI_Get_address(ints,     Dtypeaddr);
+  MPI_Get_address(doubles, (Dtypeaddr+1));
   
-  MPI_Type_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_Quart);
+  MPI_Type_create_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_Quart);
   MPI_Type_commit(&PP_Quart);
  
 # ifdef PVERBOSE2
@@ -1201,10 +1201,10 @@
  
   PP_quartrecved++;
   PP_quartrecvedn++;
-  MPI_Address(ints,     Dtypeaddr);
-  MPI_Address(doubles, (Dtypeaddr+1));
+  MPI_Get_address(ints,     Dtypeaddr);
+  MPI_Get_address(doubles, (Dtypeaddr+1));
   
-  MPI_Type_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_Quart);
+  MPI_Type_create_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_Quart);
   MPI_Type_commit(&PP_Quart);
  
   error = MPI_Recv(MPI_BOTTOM, 1, PP_Quart, MPI_ANY_SOURCE, PP_QUART, PP_Comm, &stat);
@@ -1368,10 +1368,10 @@
   ulis[5] = fullresqs; /* number of fully resolved quartets */
   ulis[6] = missingqs; /* number of missing quartets */
 
-  MPI_Address(ulis,  Dtypeaddr);
-  MPI_Address(ints, (Dtypeaddr+1));
+  MPI_Get_address(ulis,  Dtypeaddr);
+  MPI_Get_address(ints, (Dtypeaddr+1));
   
-  MPI_Type_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_QBlockSpecs);
+  MPI_Type_create_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_QBlockSpecs);
   MPI_Type_commit(&PP_QBlockSpecs);
  
 # ifdef PVERBOSE2
@@ -1384,12 +1384,12 @@
     fprintf(STDOUT, "(%2d) ... Sent QuartBlockSpecs (%ld, %ld, %ld, %d)\n", PP_Myid, ulis[0], ulis[1], ulis[2], ints[0]);
 # endif /* PVERBOSE3 */
 
-  MPI_Address(trueaddr, DtypeaddrRes);
+  MPI_Get_address(trueaddr, DtypeaddrRes);
   DtypelensRes[0] = truenum;
 
-  MPI_Address(bq, (DtypeaddrRes + 1));
+  MPI_Get_address(bq, (DtypeaddrRes + 1));
   DtypelensRes[1] = numofbq;
-  MPI_Type_struct(2, DtypelensRes, DtypeaddrRes, DtypesRes, &PP_QBlockRes);
+  MPI_Type_create_struct(2, DtypelensRes, DtypeaddrRes, DtypesRes, &PP_QBlockRes);
   MPI_Type_commit(&PP_QBlockRes);
 
   error = MPI_Ssend(MPI_BOTTOM, 1, PP_QBlockRes, PP_MyMaster, PP_QUARTBLOCK, PP_Comm);
@@ -1455,10 +1455,10 @@
 #	ifdef PVERBOSE3
 	    fprintf(STDOUT, "(%2d) Receiving QuartBlock ...\n", PP_Myid);
 #	endif /* PVERBOSE3 */
-	MPI_Address(ulis,  Dtypeaddr);
-	MPI_Address(ints, (Dtypeaddr+1));
+	MPI_Get_address(ulis,  Dtypeaddr);
+	MPI_Get_address(ints, (Dtypeaddr+1));
  
-	MPI_Type_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_QBlockSpecs);
+	MPI_Type_create_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_QBlockSpecs);
 	MPI_Type_commit(&PP_QBlockSpecs);
  
 	MPI_Probe(MPI_ANY_SOURCE, PP_QUARTBLOCKSPECS, PP_Comm, &stat);
@@ -1486,13 +1486,13 @@
 #       endif /* PVERBOSE3 */
 
 	DtypelensRes[0] =  truenum;
-	MPI_Address(trueaddr,  DtypeaddrRes);
+	MPI_Get_address(trueaddr,  DtypeaddrRes);
 
 	bq = calloc((size_t) *numofbq, sizeof(uli));
 
 	DtypelensRes[1] = *numofbq;
-	MPI_Address(bq, (DtypeaddrRes+1));
-	MPI_Type_struct(2, DtypelensRes, DtypeaddrRes, DtypesRes, &PP_QBlockRes);
+	MPI_Get_address(bq, (DtypeaddrRes+1));
+	MPI_Type_create_struct(2, DtypelensRes, DtypeaddrRes, DtypesRes, &PP_QBlockRes);
 	MPI_Type_commit(&PP_QBlockRes);
  
 	error = MPI_Recv(MPI_BOTTOM, 1, PP_QBlockRes, dest, PP_QUARTBLOCK, PP_Comm, &stat);
@@ -1637,8 +1637,8 @@
      Dtypelens[0] = (Numquartets + 1)/2;
   }
 
-  MPI_Address(&(quartetinfo[0]), Dtypeaddr);
-  MPI_Type_struct(1, Dtypelens, Dtypeaddr, Dtypes, &PP_AllQuarts);
+  MPI_Get_address(&(quartetinfo[0]), Dtypeaddr);
+  MPI_Type_create_struct(1, Dtypelens, Dtypeaddr, Dtypes, &PP_AllQuarts);
   MPI_Type_commit(&PP_AllQuarts);
  
   for (dest=1; dest<PP_NumProcs; dest++) {
@@ -1686,8 +1686,8 @@
     Dtypelens[0] = (*Numquartets + 1)/2;
   }
  
-  MPI_Address(&(quartetinfo[0]), Dtypeaddr);
-  MPI_Type_struct(1, Dtypelens, Dtypeaddr, Dtypes, &PP_AllQuarts);
+  MPI_Get_address(&(quartetinfo[0]), Dtypeaddr);
+  MPI_Type_create_struct(1, Dtypelens, Dtypeaddr, Dtypes, &PP_AllQuarts);
   MPI_Type_commit(&PP_AllQuarts);
  
   error = MPI_Recv(MPI_BOTTOM, 1, PP_AllQuarts, PP_MyMaster, PP_ALLQUARTS, PP_Comm, &stat);
@@ -1748,13 +1748,13 @@
   for (n=0; n<(int)blocksize; n++) {
     Dtypes[n]    = MPI_CHAR;
     Dtypelens[n] = (taxa - 3) * taxa;
-    MPI_Address(&(biparts[n][0][0]), &(Dtypeaddr[n]));
+    MPI_Get_address(&(biparts[n][0][0]), &(Dtypeaddr[n]));
   }
   pstptr = pstlist;
   for (n=0; n<pstnum; n++) {
     Dtypes[(int)blocksize + n]    = MPI_CHAR;
     Dtypelens[(int)blocksize + n] = psteptreestrlen;
-    MPI_Address((*pstptr).tree, &(Dtypeaddr[(int)blocksize + n]));
+    MPI_Get_address((*pstptr).tree, &(Dtypeaddr[(int)blocksize + n]));
     pstnumarr[n] = (*pstptr).count;
 #   ifdef PVERBOSE3
        fprintf(STDOUT, "(%2d) Sent tree item ->%d: [%d/%d] #=%d  \"%s\"\n",
@@ -1764,9 +1764,9 @@
   }
   Dtypes[((int)blocksize + pstnum)]    = MPI_INT;
   Dtypelens[((int)blocksize + pstnum)] = pstnum;
-  MPI_Address(&(pstnumarr[0]), &(Dtypeaddr[((int)blocksize + pstnum)]));
+  MPI_Get_address(&(pstnumarr[0]), &(Dtypeaddr[((int)blocksize + pstnum)]));
 
-  MPI_Type_struct(((int)blocksize + pstnum + 1), Dtypelens, Dtypeaddr, Dtypes, &PP_Biparts);
+  MPI_Type_create_struct(((int)blocksize + pstnum + 1), Dtypelens, Dtypeaddr, Dtypes, &PP_Biparts);
   MPI_Type_commit(&PP_Biparts);
  
   error = MPI_Ssend(MPI_BOTTOM, 1, PP_Biparts, PP_MyMaster, PP_PUZZLEBLOCK, PP_Comm);
@@ -1843,20 +1843,20 @@
     (*bip)[n]        = new_cmatrix(*taxa - 3, *taxa);
     Dtypes[n]    = MPI_CHAR;
     Dtypelens[n] = (*taxa - 3) * *taxa;
-    MPI_Address(&((*bip)[n][0][0]), &(Dtypeaddr[n]));
+    MPI_Get_address(&((*bip)[n][0][0]), &(Dtypeaddr[n]));
   }
   for (n=0; n<pstlistnum; n++) {
     pstarr[n]        = (char *)calloc((size_t) psteptreestrlen, sizeof(char)); 
     Dtypes[(int)*blocksize + n]    = MPI_CHAR;
     Dtypelens[(int)*blocksize + n] = psteptreestrlen;
-    MPI_Address(&(pstarr[n][0]), &(Dtypeaddr[(int)*blocksize + n]));
+    MPI_Get_address(&(pstarr[n][0]), &(Dtypeaddr[(int)*blocksize + n]));
   }
   
   Dtypes[(int)*blocksize + pstlistnum]    = MPI_INT;
   Dtypelens[(int)*blocksize + pstlistnum] = pstlistnum;
-  MPI_Address(&(pstnumarr[0]), &(Dtypeaddr[(int)*blocksize + pstlistnum]));
+  MPI_Get_address(&(pstnumarr[0]), &(Dtypeaddr[(int)*blocksize + pstlistnum]));
 
-  MPI_Type_struct(((int)*blocksize + pstlistnum + 1), Dtypelens, Dtypeaddr, Dtypes, &PP_Biparts);
+  MPI_Type_create_struct(((int)*blocksize + pstlistnum + 1), Dtypelens, Dtypeaddr, Dtypes, &PP_Biparts);
   MPI_Type_commit(&PP_Biparts);
  
   error = MPI_Recv(MPI_BOTTOM, 1, PP_Biparts, dest, PP_PUZZLEBLOCK, PP_Comm, &stat);
@@ -2053,10 +2053,10 @@
     fprintf(STDOUT, "(%2d) ... Sent DONE Signal\n", PP_Myid);
 # endif /* PVERBOSE3 */
  
-  MPI_Address(ints,     Dtypeaddr);
-  MPI_Address(doubles, (Dtypeaddr+1));
+  MPI_Get_address(ints,     Dtypeaddr);
+  MPI_Get_address(doubles, (Dtypeaddr+1));
 
-  MPI_Type_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_Stats);
+  MPI_Type_create_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_Stats);
   MPI_Type_commit(&PP_Stats);
 
   doquartrecved[0]  = 0;
@@ -2173,10 +2173,10 @@
   doubles[4] = tarr.cpu;
   doubles[5] = tarr.time;
 
-  MPI_Address(ints,     Dtypeaddr);
-  MPI_Address(doubles, (Dtypeaddr+1));
+  MPI_Get_address(ints,     Dtypeaddr);
+  MPI_Get_address(doubles, (Dtypeaddr+1));
 
-  MPI_Type_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_Stats);
+  MPI_Type_create_struct(2, Dtypelens, Dtypeaddr, Dtypes, &PP_Stats);
   MPI_Type_commit(&PP_Stats);
 
   error = MPI_Ssend(MPI_BOTTOM, 1, PP_Stats, PP_MyMaster, PP_STATS, PP_Comm);