xref: /phasta/phSolver/common/test/phIOposixMultiTopo.cc (revision 1a21b96d23cf971e9f68770120f2ed45d2898312)
1b184aa6dSCameron Smith #include <mpi.h>
2b184aa6dSCameron Smith #include <stdio.h>
3b184aa6dSCameron Smith #include <stdlib.h>
4b184aa6dSCameron Smith #include <unistd.h>
5b184aa6dSCameron Smith #include "phIO.h"
6b184aa6dSCameron Smith #include "syncio.h"
7b184aa6dSCameron Smith #include "posixio.h"
8*1a21b96dSCameron Smith #include <assert.h>
9b184aa6dSCameron Smith 
10b184aa6dSCameron Smith int main(int argc, char* argv[]) {
11b184aa6dSCameron Smith   MPI_Init(&argc,&argv);
12b184aa6dSCameron Smith   int rank;
13b184aa6dSCameron Smith   MPI_Comm_rank(MPI_COMM_WORLD, &rank);
14b184aa6dSCameron Smith   const char* iotype = "binary";
15b184aa6dSCameron Smith   int seven = 7;
16b184aa6dSCameron Smith   int headerData[7] = {0,0,0,0,0,0,0};
17b184aa6dSCameron Smith   int blocksRead = 0;
18b184aa6dSCameron Smith   phio_fp file;
19b184aa6dSCameron Smith   posixio_setup(&file, 'r');
20b184aa6dSCameron Smith   phio_openfile("geombc.dat.", file);
21*1a21b96dSCameron Smith   for(int i=0;i<2;i++) {
22b184aa6dSCameron Smith     phio_readheader(file, "connectivity interior",
23b184aa6dSCameron Smith         headerData, &seven, "integer", iotype);
24*1a21b96dSCameron Smith     assert(headerData[0] > 0 && headerData[3] > 0);
25*1a21b96dSCameron Smith     int size = headerData[0]*headerData[3]; /* neltp*nshl */
26b184aa6dSCameron Smith     fprintf(stderr, "rank %d data[0] %d\n", rank, headerData[0]);
27*1a21b96dSCameron Smith     int* vals = (int*) calloc(size,sizeof(int));
28*1a21b96dSCameron Smith     phio_readdatablock(file,"connectivity interior",vals,&size,"integer",iotype);
29*1a21b96dSCameron Smith     free(vals);
30b184aa6dSCameron Smith     blocksRead += (headerData[0] > 0);
31*1a21b96dSCameron Smith   }
32b184aa6dSCameron Smith   phio_closefile(file);
33b184aa6dSCameron Smith   MPI_Barrier(MPI_COMM_WORLD);
34b184aa6dSCameron Smith   fprintf(stderr, "rank %d number of blocks read %d\n", rank, blocksRead);
35b184aa6dSCameron Smith   MPI_Finalize();
36b184aa6dSCameron Smith   return (blocksRead==2);
37b184aa6dSCameron Smith }
38