1*59599516SKenneth E. Jansen #include <fstream> 2*59599516SKenneth E. Jansen #include <stdio.h> 3*59599516SKenneth E. Jansen #include <stdlib.h> 4*59599516SKenneth E. Jansen #include <vector> 5*59599516SKenneth E. Jansen #include <string.h> 6*59599516SKenneth E. Jansen #include <cstring> 7*59599516SKenneth E. Jansen #include <sys/types.h> 8*59599516SKenneth E. Jansen #include <dirent.h> // For opendir(),readdir(),... 9*59599516SKenneth E. Jansen #include <mpi.h> 10*59599516SKenneth E. Jansen #include "phastaIO.h" 11*59599516SKenneth E. Jansen 12*59599516SKenneth E. Jansen #include "Input.h" 13*59599516SKenneth E. Jansen #include "common_c.h" 14*59599516SKenneth E. Jansen #include "setsyncioparam.h" 15*59599516SKenneth E. Jansen 16*59599516SKenneth E. Jansen 17*59599516SKenneth E. Jansen using namespace std; //useful for ifstream. Other solution is std::ifstream 18*59599516SKenneth E. Jansen 19*59599516SKenneth E. Jansen // extern void queryphmpiio_(const char[], int*, int*); 20*59599516SKenneth E. Jansen // void queryphmpiio_(const char filename[],int *nfields, int *nppf) 21*59599516SKenneth E. Jansen 22*59599516SKenneth E. Jansen void setIOparam() 23*59599516SKenneth E. Jansen { 24*59599516SKenneth E. Jansen int count; 25*59599516SKenneth E. Jansen int nfields; 26*59599516SKenneth E. Jansen int nppf; 27*59599516SKenneth E. Jansen int stepno; 28*59599516SKenneth E. Jansen int part; 29*59599516SKenneth E. Jansen char fname[255]; 30*59599516SKenneth E. Jansen DIR *d; 31*59599516SKenneth E. Jansen struct dirent *filename; 32*59599516SKenneth E. Jansen 33*59599516SKenneth E. Jansen 34*59599516SKenneth E. Jansen //Number of geombc files 35*59599516SKenneth E. Jansen if(workfc.myrank == 0){ 36*59599516SKenneth E. Jansen if( (d = opendir(".")) != NULL) { 37*59599516SKenneth E. Jansen count=0; 38*59599516SKenneth E. Jansen while(filename=readdir(d)) { 39*59599516SKenneth E. Jansen //printf("%s\n", filename->d_name); 40*59599516SKenneth E. Jansen if(strncmp(filename->d_name,"geombc-dat",10)==0) { 41*59599516SKenneth E. Jansen count=count+1; 42*59599516SKenneth E. Jansen } 43*59599516SKenneth E. Jansen } 44*59599516SKenneth E. Jansen closedir(d); 45*59599516SKenneth E. Jansen } 46*59599516SKenneth E. Jansen else { 47*59599516SKenneth E. Jansen printf("ERROR when counting geombc-dat\n"); 48*59599516SKenneth E. Jansen } 49*59599516SKenneth E. Jansen } 50*59599516SKenneth E. Jansen 51*59599516SKenneth E. Jansen MPI_Bcast( &count, 1, MPI_INT, 0, MPI_COMM_WORLD ); 52*59599516SKenneth E. Jansen //printf("Here we gogo: %d %d\n",workfc.myrank,count); 53*59599516SKenneth E. Jansen 54*59599516SKenneth E. Jansen outpar.nsynciofiles = count; 55*59599516SKenneth E. Jansen if(workfc.myrank == 0) { 56*59599516SKenneth E. Jansen printf("Number of geombc-dat and restart-dat files to read: %d\n", count); 57*59599516SKenneth E. Jansen } 58*59599516SKenneth E. Jansen 59*59599516SKenneth E. Jansen } 60*59599516SKenneth E. Jansen 61*59599516SKenneth E. Jansen void detectd2wallfiles(int* numd2wallfiles) 62*59599516SKenneth E. Jansen { 63*59599516SKenneth E. Jansen int count; 64*59599516SKenneth E. Jansen int nfields; 65*59599516SKenneth E. Jansen int nppf; 66*59599516SKenneth E. Jansen int stepno; 67*59599516SKenneth E. Jansen int part; 68*59599516SKenneth E. Jansen char fname[255]; 69*59599516SKenneth E. Jansen DIR *d; 70*59599516SKenneth E. Jansen struct dirent *filename; 71*59599516SKenneth E. Jansen 72*59599516SKenneth E. Jansen //Number of d2wall files 73*59599516SKenneth E. Jansen if(workfc.myrank == 0){ 74*59599516SKenneth E. Jansen if( (d = opendir(".")) != NULL) { 75*59599516SKenneth E. Jansen count=0; 76*59599516SKenneth E. Jansen while(filename=readdir(d)) { 77*59599516SKenneth E. Jansen //printf("%s\n", filename->d_name); 78*59599516SKenneth E. Jansen if(strncmp(filename->d_name,"d2wall",6)==0) { 79*59599516SKenneth E. Jansen count=count+1; 80*59599516SKenneth E. Jansen } 81*59599516SKenneth E. Jansen } 82*59599516SKenneth E. Jansen closedir(d); 83*59599516SKenneth E. Jansen } 84*59599516SKenneth E. Jansen } 85*59599516SKenneth E. Jansen 86*59599516SKenneth E. Jansen MPI_Bcast( &count, 1, MPI_INT, 0, MPI_COMM_WORLD ); 87*59599516SKenneth E. Jansen //printf("Here we gogo: %d %d\n",workfc.myrank,count); 88*59599516SKenneth E. Jansen 89*59599516SKenneth E. Jansen *numd2wallfiles = count; 90*59599516SKenneth E. Jansen if(workfc.myrank == 0) { 91*59599516SKenneth E. Jansen printf("Number of d2wall files present in the proc_case directory: %d\n", count); 92*59599516SKenneth E. Jansen } 93*59599516SKenneth E. Jansen 94*59599516SKenneth E. Jansen } 95*59599516SKenneth E. Jansen 96*59599516SKenneth E. Jansen 97*59599516SKenneth E. Jansen // void countfieldstowriterestart() //See new_interface.c 98