6 int main( int argc, char **argv )
8 int i, n, n_goal = 2048, rc, len;
9 MPI_Datatype *type_array;
10 char msg[MPI_MAX_ERROR_STRING];
12 MPI_Init( &argc, &argv );
13 MPI_Errhandler_set( MPI_COMM_WORLD, MPI_ERRORS_RETURN );
17 type_array = (MPI_Datatype *)malloc( n * sizeof(MPI_Datatype) );
22 MPI_Datatype types[2];
27 displ[1] = (i+2) * sizeof(int);
29 types[1] = MPI_DOUBLE;
30 rc = MPI_Type_struct( 2, blens, displ, types, type_array + i );
32 fprintf( stderr, "Error when creating type number %d\n", i );
33 MPI_Error_string( rc, msg, &len );
34 fprintf( stderr, "%s\n", msg );
38 rc = MPI_Type_commit( type_array + i );
40 fprintf( stderr, "Error when commiting type number %d\n", i );
41 MPI_Error_string( rc, msg, &len );
42 fprintf( stderr, "%s\n", msg );
48 rc = MPI_Type_free( type_array + i );
50 fprintf( stderr, "Error when freeing type number %d\n", i );
51 MPI_Error_string( rc, msg, &len );
52 fprintf( stderr, "%s\n", msg );
57 printf( "Completed test of %d type creations\n", n );
60 "This MPI implementation limits the number of datatypes that can be created\n\
61 This is allowed by the standard and is not a bug, but is a limit on the\n\