47 printf(
"AL_Decompose: wrong SZ pointer\n");
59 errcode = MPI_File_open(comm, filename,
60 MPI_MODE_CREATE | MPI_MODE_RDWR | MPI_MODE_UNIQUE_OPEN,
70 MPI_Comm_rank(MPI_COMM_WORLD, &myid);
72 MPI_Error_string(errcode, es, &len);
73 printf(
"Errcode from MPI_File_open: %d | %s\n", errcode, es);
75 printf(
"myid %d, AL_File_open: Opened file %s\n",myid,filename);
97 errcode = MPI_File_close(&(s->
ifp));
104 MPI_Comm_rank(MPI_COMM_WORLD, &myid);
105 MPI_Error_string(errcode, es, &len);
106 printf(
"Errcode from MPI_File_close: %d | %s\n", errcode, es);
108 printf(
"myid %d, AL_File_close: Closed file, errcode %d \n",myid, errcode);
144 s = sz_stack[sz_ptr];
157 MPI_Barrier(s->
comm);
159 errcode = MPI_File_set_view(ifp, offset, MPI_BYTE, gsub_arr,
160 "native", MPI_INFO_NULL);
165 MPI_Comm_rank(MPI_COMM_WORLD, &myid);
167 MPI_Error_string(errcode, es, &len);
168 printf(
"Errcode from MPI_File_set_view: %d | %s\n", errcode, es);
170 printf(
"myid %d, offset file_set_view %lld\n", myid,offset);
173 errcode = MPI_File_write_all(ifp, a, 1, lsub_arr, &status);
177 MPI_Error_string(errcode, es, &len);
178 printf(
"Errcode from MPI_File_write_all: %d | %s\n", errcode, es);
182 MPI_Type_size( s->
type, &size);
185 for(i = 0; i < s->
ndim; i++) {
199 nelem *= (
long long)(s->
arrdim[i]);
236 s = sz_stack[sz_ptr];
250 MPI_Barrier(s->
comm);
252 MPI_File_set_view(ifp, offset, MPI_BYTE, gsub_arr,
253 "native", MPI_INFO_NULL);
254 MPI_File_read_all(ifp, a, 1, lsub_arr, &status);
256 MPI_Type_size( s->
type, &size);
259 for(i = 0; i < s->
ndim; i++) {
273 nelem *= (
long long)(s->
arrdim[i]);
303 MPI_Type_size(type, &size);
304 buffer = (
char *) vbuffer;
307 s = sz_stack[sz_ptr];
312 MPI_Barrier(s->
comm);
313 MPI_File_set_view(ifp, offset, MPI_BYTE, MPI_CHAR,
314 "native", MPI_INFO_NULL);
317 MPI_File_write(ifp, buffer, nelem, type, &status);
336 printf(
"AL_Get_offset: wrong SZ pointer\n");
338 s = sz_stack[sz_ptr];
351 printf(
"AL_Get_offset: wrong SZ pointer\n");
353 s = sz_stack[sz_ptr];
int AL_Write_header(void *vbuffer, int nelem, AL_Datatype type, int sz_ptr)
long long AL_Get_offset(int sz_ptr)
int AL_Set_offset(int sz_ptr, long long offset)
int AL_File_open(char *filename, int sz_ptr)
int AL_Write_array(void *va, int sz_ptr, int istag)
MPI_Datatype lsubarr_stag[AL_MAX_DIM]
int AL_File_close(int sz_ptr)
SZ * sz_stack[AL_MAX_ARRAYS]
int stack_ptr[AL_MAX_ARRAYS]
MPI_Datatype gsubarr_stag[AL_MAX_DIM]
Internal include file for the ArrayLib.
int AL_Read_array(void *va, int sz_ptr, int istag)