This source file includes following definitions.
- mpi_info_set_
1
2
3
4
5
6
7
8 #include "mpio.h"
9 #include "adio.h"
10
11
12 #if defined(MPIO_BUILD_PROFILING) || defined(HAVE_WEAK_SYMBOLS)
13 #ifdef FORTRANCAPS
14 #define mpi_info_set_ PMPI_INFO_SET
15 #elif defined(FORTRANDOUBLEUNDERSCORE)
16 #define mpi_info_set_ pmpi_info_set__
17 #elif !defined(FORTRANUNDERSCORE)
18 #if defined(HPUX) || defined(SPPUX)
19 #pragma _HP_SECONDARY_DEF pmpi_info_set pmpi_info_set_
20 #endif
21 #define mpi_info_set_ pmpi_info_set
22 #else
23 #if defined(HPUX) || defined(SPPUX)
24 #pragma _HP_SECONDARY_DEF pmpi_info_set_ pmpi_info_set
25 #endif
26 #define mpi_info_set_ pmpi_info_set_
27 #endif
28
29 #if defined(HAVE_WEAK_SYMBOLS)
30 #if defined(HAVE_PRAGMA_WEAK)
31 #if defined(FORTRANCAPS)
32 #pragma weak MPI_INFO_SET = PMPI_INFO_SET
33 #elif defined(FORTRANDOUBLEUNDERSCORE)
34 #pragma weak mpi_info_set__ = pmpi_info_set__
35 #elif !defined(FORTRANUNDERSCORE)
36 #pragma weak mpi_info_set = pmpi_info_set
37 #else
38 #pragma weak mpi_info_set_ = pmpi_info_set_
39 #endif
40
41 #elif defined(HAVE_PRAGMA_HP_SEC_DEF)
42 #if defined(FORTRANCAPS)
43 #pragma _HP_SECONDARY_DEF PMPI_INFO_SET MPI_INFO_SET
44 #elif defined(FORTRANDOUBLEUNDERSCORE)
45 #pragma _HP_SECONDARY_DEF pmpi_info_set__ mpi_info_set__
46 #elif !defined(FORTRANUNDERSCORE)
47 #pragma _HP_SECONDARY_DEF pmpi_info_set mpi_info_set
48 #else
49 #pragma _HP_SECONDARY_DEF pmpi_info_set_ mpi_info_set_
50 #endif
51
52 #elif defined(HAVE_PRAGMA_CRI_DUP)
53 #if defined(FORTRANCAPS)
54 #pragma _CRI duplicate MPI_INFO_SET as PMPI_INFO_SET
55 #elif defined(FORTRANDOUBLEUNDERSCORE)
56 #pragma _CRI duplicate mpi_info_set__ as pmpi_info_set__
57 #elif !defined(FORTRANUNDERSCORE)
58 #pragma _CRI duplicate mpi_info_set as pmpi_info_set
59 #else
60 #pragma _CRI duplicate mpi_info_set_ as pmpi_info_set_
61 #endif
62
63
64 #endif
65
66 #include "mpioprof.h"
67 #endif
68
69 #else
70
71 #ifdef FORTRANCAPS
72 #define mpi_info_set_ MPI_INFO_SET
73 #elif defined(FORTRANDOUBLEUNDERSCORE)
74 #define mpi_info_set_ mpi_info_set__
75 #elif !defined(FORTRANUNDERSCORE)
76 #if defined(HPUX) || defined(SPPUX)
77 #pragma _HP_SECONDARY_DEF mpi_info_set mpi_info_set_
78 #endif
79 #define mpi_info_set_ mpi_info_set
80 #else
81 #if defined(HPUX) || defined(SPPUX)
82 #pragma _HP_SECONDARY_DEF mpi_info_set_ mpi_info_set
83 #endif
84 #endif
85 #endif
86
87
88 void mpi_info_set_(MPI_Fint *info, char *key, char *value, int *ierr,
89 int keylen, int vallen)
90 {
91 MPI_Info info_c;
92 char *newkey, *newvalue;
93 int new_keylen, new_vallen, lead_blanks, i;
94
95 if (key <= (char *) 0) {
96 FPRINTF(stderr, "MPI_Info_set: key is an invalid address\n");
97 MPI_Abort(MPI_COMM_WORLD, 1);
98 }
99 if (value <= (char *) 0) {
100 FPRINTF(stderr, "MPI_Info_set: value is an invalid address\n");
101 MPI_Abort(MPI_COMM_WORLD, 1);
102 }
103
104
105 lead_blanks = 0;
106 for (i=0; i<keylen; i++)
107 if (key[i] == ' ') lead_blanks++;
108 else break;
109
110 for (i=keylen-1; i>=0; i--) if (key[i] != ' ') break;
111 if (i < 0) {
112 FPRINTF(stderr, "MPI_Info_set: key is a blank string\n");
113 MPI_Abort(MPI_COMM_WORLD, 1);
114 }
115 new_keylen = i + 1 - lead_blanks;
116 key += lead_blanks;
117
118 newkey = (char *) ADIOI_Malloc((new_keylen+1)*sizeof(char));
119 ADIOI_Strncpy(newkey, key, new_keylen);
120 newkey[new_keylen] = '\0';
121
122
123
124 lead_blanks = 0;
125 for (i=0; i<vallen; i++)
126 if (value[i] == ' ') lead_blanks++;
127 else break;
128
129 for (i=vallen-1; i>=0; i--) if (value[i] != ' ') break;
130 if (i < 0) {
131 FPRINTF(stderr, "MPI_Info_set: value is a blank string\n");
132 MPI_Abort(MPI_COMM_WORLD, 1);
133 }
134 new_vallen = i + 1 - lead_blanks;
135 value += lead_blanks;
136
137 newvalue = (char *) ADIOI_Malloc((new_vallen+1)*sizeof(char));
138 ADIOI_Strncpy(newvalue, value, new_vallen);
139 newvalue[new_vallen] = '\0';
140
141
142 info_c = MPI_Info_f2c(*info);
143 *ierr = MPI_Info_set(info_c, newkey, newvalue);
144 ADIOI_Free(newkey);
145 ADIOI_Free(newvalue);
146 }