159599516SKenneth E. Jansen #include <fstream>
259599516SKenneth E. Jansen #include <stdio.h>
359599516SKenneth E. Jansen #include <stdlib.h>
459599516SKenneth E. Jansen #include <vector>
559599516SKenneth E. Jansen #include <string.h>
659599516SKenneth E. Jansen #include <cstring>
759599516SKenneth E. Jansen #include <sys/types.h>
859599516SKenneth E. Jansen #include <dirent.h> // For opendir(),readdir(),...
959599516SKenneth E. Jansen #include <mpi.h>
1059599516SKenneth E. Jansen #include "phastaIO.h"
1159599516SKenneth E. Jansen
1259599516SKenneth E. Jansen #include "Input.h"
1359599516SKenneth E. Jansen #include "common_c.h"
1459599516SKenneth E. Jansen #include "setsyncioparam.h"
1559599516SKenneth E. Jansen
1659599516SKenneth E. Jansen
1759599516SKenneth E. Jansen using namespace std; //useful for ifstream. Other solution is std::ifstream
1859599516SKenneth E. Jansen
1959599516SKenneth E. Jansen // extern void queryphmpiio_(const char[], int*, int*);
2059599516SKenneth E. Jansen // void queryphmpiio_(const char filename[],int *nfields, int *nppf)
2159599516SKenneth E. Jansen
setIOparam()2259599516SKenneth E. Jansen void setIOparam()
2359599516SKenneth E. Jansen {
2459599516SKenneth E. Jansen int count;
2559599516SKenneth E. Jansen int nfields;
2659599516SKenneth E. Jansen int nppf;
2759599516SKenneth E. Jansen int stepno;
2859599516SKenneth E. Jansen int part;
2959599516SKenneth E. Jansen char fname[255];
3059599516SKenneth E. Jansen DIR *d;
3159599516SKenneth E. Jansen struct dirent *filename;
3259599516SKenneth E. Jansen
3359599516SKenneth E. Jansen
3459599516SKenneth E. Jansen //Number of geombc files
3559599516SKenneth E. Jansen if(workfc.myrank == 0){
3659599516SKenneth E. Jansen if( (d = opendir(".")) != NULL) {
3759599516SKenneth E. Jansen count=0;
3859599516SKenneth E. Jansen while(filename=readdir(d)) {
3959599516SKenneth E. Jansen //printf("%s\n", filename->d_name);
4059599516SKenneth E. Jansen if(strncmp(filename->d_name,"geombc-dat",10)==0) {
4159599516SKenneth E. Jansen count=count+1;
4259599516SKenneth E. Jansen }
4359599516SKenneth E. Jansen }
4459599516SKenneth E. Jansen closedir(d);
4559599516SKenneth E. Jansen }
4659599516SKenneth E. Jansen else {
4759599516SKenneth E. Jansen printf("ERROR when counting geombc-dat\n");
4859599516SKenneth E. Jansen }
4959599516SKenneth E. Jansen }
5059599516SKenneth E. Jansen
5159599516SKenneth E. Jansen MPI_Bcast( &count, 1, MPI_INT, 0, MPI_COMM_WORLD );
5259599516SKenneth E. Jansen //printf("Here we gogo: %d %d\n",workfc.myrank,count);
5359599516SKenneth E. Jansen
5459599516SKenneth E. Jansen outpar.nsynciofiles = count;
5559599516SKenneth E. Jansen if(workfc.myrank == 0) {
5659599516SKenneth E. Jansen printf("Number of geombc-dat and restart-dat files to read: %d\n", count);
57*9e5fdc79SCameron Smith if(count==0) {
58*9e5fdc79SCameron Smith printf("since zero assuming you planned to run posix 1PPF \n");
59*9e5fdc79SCameron Smith }
6059599516SKenneth E. Jansen }
6159599516SKenneth E. Jansen
6259599516SKenneth E. Jansen }
6359599516SKenneth E. Jansen
detectd2wallfiles(int * numd2wallfiles)6459599516SKenneth E. Jansen void detectd2wallfiles(int* numd2wallfiles)
6559599516SKenneth E. Jansen {
6659599516SKenneth E. Jansen int count;
6759599516SKenneth E. Jansen int nfields;
6859599516SKenneth E. Jansen int nppf;
6959599516SKenneth E. Jansen int stepno;
7059599516SKenneth E. Jansen int part;
7159599516SKenneth E. Jansen char fname[255];
7259599516SKenneth E. Jansen DIR *d;
7359599516SKenneth E. Jansen struct dirent *filename;
7459599516SKenneth E. Jansen
7559599516SKenneth E. Jansen //Number of d2wall files
7659599516SKenneth E. Jansen if(workfc.myrank == 0){
7759599516SKenneth E. Jansen if( (d = opendir(".")) != NULL) {
7859599516SKenneth E. Jansen count=0;
7959599516SKenneth E. Jansen while(filename=readdir(d)) {
8059599516SKenneth E. Jansen //printf("%s\n", filename->d_name);
8159599516SKenneth E. Jansen if(strncmp(filename->d_name,"d2wall",6)==0) {
8259599516SKenneth E. Jansen count=count+1;
8359599516SKenneth E. Jansen }
8459599516SKenneth E. Jansen }
8559599516SKenneth E. Jansen closedir(d);
8659599516SKenneth E. Jansen }
8759599516SKenneth E. Jansen }
8859599516SKenneth E. Jansen
8959599516SKenneth E. Jansen MPI_Bcast( &count, 1, MPI_INT, 0, MPI_COMM_WORLD );
9059599516SKenneth E. Jansen //printf("Here we gogo: %d %d\n",workfc.myrank,count);
9159599516SKenneth E. Jansen
9259599516SKenneth E. Jansen *numd2wallfiles = count;
9359599516SKenneth E. Jansen if(workfc.myrank == 0) {
9459599516SKenneth E. Jansen printf("Number of d2wall files present in the proc_case directory: %d\n", count);
9559599516SKenneth E. Jansen }
9659599516SKenneth E. Jansen
9759599516SKenneth E. Jansen }
9859599516SKenneth E. Jansen
9959599516SKenneth E. Jansen
10059599516SKenneth E. Jansen // void countfieldstowriterestart() //See new_interface.c
101