@@ -124,7 +124,7 @@ int main(int argc, char **argv)
124124{
125125 extern int optind ;
126126 extern char * optarg ;
127- int i , j , k , err , nerrs = 0 , use_bput = 0 ;
127+ int i , j , k , err , nerrs = 0 , debug = 0 , use_bput = 0 ;
128128 int nprocs , len = 0 , bufsize , rank ;
129129 int sca_buf [SCA_NVARS ], * fix_buf [FIX_NVARS ], * rec_buf [REC_NVARS ];
130130 int gsizes [NDIMS ], psizes [NDIMS ];
@@ -164,28 +164,37 @@ int main(int argc, char **argv)
164164 for (i = 0 ; i < NDIMS ; i ++ ) psizes [i ] = 0 ;
165165
166166 MPI_Dims_create (nprocs , NDIMS , psizes );
167+ if (rank == 0 && verbose && debug )
168+ printf ("Process DIMS psizes=%2lld %2lld %2lld\n" ,
169+ psizes [0 ],psizes [1 ],psizes [2 ]);
170+
167171 starts [0 ] = 0 ;
168- starts [1 ] = rank % psizes [0 ];
169- starts [2 ] = (rank / psizes [1 ]) % psizes [1 ];
170- starts [3 ] = ( rank / ( psizes [ 0 ] * psizes [ 1 ])) % psizes [2 ];
172+ starts [1 ] = ( rank / ( psizes [ 1 ] * psizes [ 2 ])) % psizes [0 ];
173+ starts [2 ] = (rank / psizes [2 ]) % psizes [1 ];
174+ starts [3 ] = rank % psizes [2 ];
171175
172176 counts [0 ] = 1 ;
173177 bufsize = 1 ;
174178 for (i = 0 ; i < NDIMS ; i ++ ) {
175- gsizes [i ] = len * psizes [i ];
176- starts [ i ] *= len ;
177- bufsize *= len ;
178- counts [i + 1 ] = len ;
179+ gsizes [i ] = len * psizes [i ];
180+ bufsize *= len ;
181+ starts [ i + 1 ] *= len ;
182+ counts [i + 1 ] = len ;
179183 }
180184
185+ if (verbose && debug )
186+ printf ("%2d: starts=%2lld %2lld %2lld %2lld counts=%2lld %2lld %2lld %2lld\n" ,
187+ rank , starts [0 ], starts [1 ], starts [2 ], starts [3 ],
188+ counts [0 ], counts [1 ], counts [2 ], counts [3 ]);
189+
181190 /* allocate buffer and initialize with some non-zero numbers */
182191 for (i = 0 ; i < FIX_NVARS ; i ++ ) {
183192 fix_buf [i ] = (int * ) malloc (bufsize * sizeof (int ));
184- for (j = 0 ; j < bufsize ; j ++ ) fix_buf [i ][j ] = rank * i + 123 + j ;
193+ for (j = 0 ; j < bufsize ; j ++ ) fix_buf [i ][j ] = rank ;
185194 }
186195 for (i = 0 ; i < REC_NVARS ; i ++ ) {
187196 rec_buf [i ] = (int * ) malloc (bufsize * sizeof (int ));
188- for (j = 0 ; j < bufsize ; j ++ ) rec_buf [i ][j ] = rank * i + 123 + j ;
197+ for (j = 0 ; j < bufsize ; j ++ ) rec_buf [i ][j ] = rank ;
189198 }
190199 for (j = 0 ; j < SCA_NVARS ; j ++ ) sca_buf [j ] = rank + j ;
191200
@@ -216,7 +225,7 @@ int main(int argc, char **argv)
216225 err = ncmpi_def_dim (ncid , "time" , NC_UNLIMITED , & dimids [0 ]);
217226 ERR
218227 for (i = 0 ; i < NDIMS ; i ++ ) {
219- sprintf (str , "%c" , 'x' + i );
228+ sprintf (str , "%c" , 'z' - i );
220229 err = ncmpi_def_dim (ncid , str , gsizes [i ], & dimids [i + 1 ]);
221230 ERR
222231 }
@@ -362,9 +371,9 @@ int main(int argc, char **argv)
362371 if (rank == 0 && verbose ) {
363372 printf ("\n" );
364373 if (use_bput )
365- printf ("Using PnetCDF nonblocking bput APIs\n" );
374+ printf ("Using PnetCDF nonblocking APIs: bput \n" );
366375 else
367- printf ("Using PnetCDF nonblocking iput APIs\n" );
376+ printf ("Using PnetCDF nonblocking APIs: iput \n" );
368377 printf ("Total amount writes (include header) = %lld bytes\n" , sum_write_size );
369378 printf ("Total amount writes reported by pnetcdf (include header) = %lld bytes\n" , sum_put_size );
370379 printf ("\n" );
0 commit comments