51 MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
59 MPI_Datatype filetype_gsub_arr;
62 for (i=0; i<output_nvar; i++){
63 if (!(output_dump[i]== 0)) count = count+1;
65 errcode = MPI_Type_contiguous(count, s->
gsubarr, &filetype_gsub_arr);
66 errcode = MPI_Type_commit(&filetype_gsub_arr);
69 MPI_Datatype dtype_lsub_arr;
72 if(myrank==0) printf(
"count=%d, output_nvar=%d\n",count,output_nvar);
75 int *block_leng, *displ;
78 block_leng= (
int*) malloc(count*
sizeof(
int));
79 displ=(
int*) malloc(count*
sizeof(
int));
81 for (i=0; i<output_nvar; i++){
82 if (!(output_dump[i]==0)){
89 errcode = MPI_Type_indexed(count,block_leng, displ, s->
lsubarr, &dtype_lsub_arr);
90 errcode = MPI_Type_commit(&dtype_lsub_arr);
98 for (i=0; i<output_nvar; i++) printf(
"myid, %d, count %d, output_nvar %d, i %d, output_dump[i] %d, block_leng[i] %d, displ[i] %d\n", myrank, count, output_nvar, i, output_dump[i], block_leng[i], displ[i]);
104 MPI_Barrier(s->
comm);
107 errcode = MPI_File_set_view(ifp, 0, MPI_BYTE, filetype_gsub_arr,
108 "native", MPI_INFO_NULL);
109 MPI_Type_free(&filetype_gsub_arr);
114 char es[MPI_MAX_ERROR_STRING];
115 MPI_Error_string(errcode, es, &len);
116 printf(
"myid %d, Errcode from MPI_File_set_view: %d | %s\n", myrank, errcode, es);
119 errcode = MPI_File_write_all_begin(ifp, va, 1,dtype_lsub_arr);
120 MPI_Type_free(&dtype_lsub_arr);
124 printf(
"myid %d\n", myrank);
125 MPI_Error_string(errcode, es, &len);
126 printf(
"myid %d, Errcode from MPI_File_write_all_begin: %d | %s\n", myrank, errcode, es);
152 MPI_Comm_rank(MPI_COMM_WORLD, &myrank);
156 s = sz_stack[sz_ptr];
159 errcode=MPI_File_write_all_end(ifp, a, &status);
166 MPI_Error_string(errcode, es, &len);
167 printf(
"Errcode from MPI_File_write_all_end: %d | %s\n", errcode, es);
int stack_ptr[AL_MAX_ARRAYS]
int AL_Write_array_end(void *va, int sz_ptr)
SZ * sz_stack[AL_MAX_ARRAYS]
Internal include file for the ArrayLib.
int AL_Write_array_begin(void *va, int sz_ptr, int *output_stag, int *output_dump, int output_nvar)