xref: /phasta/phSolver/common/test/phIOreadheader.cc (revision 6d0848bbfae688860d74cb6434f989d07b1aad31)
10bfd2916SCameron Smith #include <mpi.h>
23138ee3cSCameron Smith #include <stdio.h>
33138ee3cSCameron Smith #include <stdlib.h>
43138ee3cSCameron Smith #include <unistd.h>
50bfd2916SCameron Smith #include "phIO.h"
6ab645d52SCameron Smith #include "syncio.h"
7ab645d52SCameron Smith #include "posixio.h"
80bfd2916SCameron Smith 
main(int argc,char * argv[])90bfd2916SCameron Smith int main(int argc, char* argv[]) {
100bfd2916SCameron Smith   MPI_Init(&argc,&argv);
113138ee3cSCameron Smith   int rank;
123138ee3cSCameron Smith   MPI_Comm_rank(MPI_COMM_WORLD, &rank);
133138ee3cSCameron Smith   if( argc != 2 ) {
143138ee3cSCameron Smith     fprintf(stderr, "Usage: %s <numSyncFiles>\n",argv[0]);
153138ee3cSCameron Smith     MPI_Finalize();
163138ee3cSCameron Smith     return 1;
173138ee3cSCameron Smith   }
180bfd2916SCameron Smith   const char* iotype = "binary";
193138ee3cSCameron Smith   int numberOfNodes[2] = {0,0};
203138ee3cSCameron Smith   int nfiles[2] = {atoi(argv[1]), 1};
21*50eda766SCameron Smith   const char* dir[2] = {"4-procs_case-SyncIO-2_ref", "4-procs_case-Posix_ref"};
223138ee3cSCameron Smith   const char* filename[2] = {"geombc-dat.", "geombc.dat."};
23ab645d52SCameron Smith   phio_fp file[2];
24ab645d52SCameron Smith   syncio_setup_read(nfiles[0], &(file[0]));
25ab645d52SCameron Smith   posixio_setup(&(file[1]), 'r');
260bfd2916SCameron Smith   int one = 1;
270bfd2916SCameron Smith   for(int i=0; i<2; i++) {
283138ee3cSCameron Smith     chdir(dir[i]);
293138ee3cSCameron Smith     MPI_Barrier(MPI_COMM_WORLD);
30ab645d52SCameron Smith     phio_openfile(filename[i], file[i]);
31ab645d52SCameron Smith     phio_readheader(file[i], "number of nodes", &(numberOfNodes[i]),
320bfd2916SCameron Smith         &one, "integer", iotype);
33ab645d52SCameron Smith     phio_closefile(file[i]);
343138ee3cSCameron Smith     chdir("..");
353138ee3cSCameron Smith     MPI_Barrier(MPI_COMM_WORLD);
360bfd2916SCameron Smith   }
370bfd2916SCameron Smith   int match = (numberOfNodes[0] == numberOfNodes[1]);
383138ee3cSCameron Smith   if(!rank && match)
393138ee3cSCameron Smith     fprintf(stderr, "number of nodes match!\n");
403138ee3cSCameron Smith   if(!rank && !match)
413138ee3cSCameron Smith     fprintf(stderr, "number of nodes don't match... :(\n");
420bfd2916SCameron Smith   MPI_Finalize();
433138ee3cSCameron Smith   return !match;
440bfd2916SCameron Smith }
45